• Nginx使用try_files与error_page自定义404图片

    full nginx 404 jpg

    使用try_files指令

    如果你经常在Nginx下部署单页应用(Single Page Application)应用,那么你一定会非常熟悉try_files这个指令,单页应用的逻辑是不存在的请求资源全部交由index.html处理

    server {
      listen 80;
      server_name qttc.net;
    
      location / {
        root  /qttc;
        index index.html;
        try_files $uri $uri/ /index.html;
      }
    }
    

    ...

    READ ALL

  • 利用W3C工具校验你站点的HTML标签结构是否符合标准

    full check markup html

    HTML标签

    早期的HTML标签并没有那么多,因为属于标记语言,所以本身又没有那么严谨。配合CSS只需要DIV标签就能完成绝大多数的页面效果,所以绝大多数时候不会认真的去校验HTML的标签结构是否合理,因为即使不合理也不会导致网页不能显示。

    W3C近年来随着Web应用的迅猛崛起,同时发布了许多标准的HTML标签,尝试用更丰富合理的标签构造出更贴合实际意义的网页元素。

    同时推出了一个在线检测工具Markup Validation Service,在这个网页上只需要输入你的网页地址即可实时查看检测结果。

    ...

    READ ALL

  • Mac文件名大小写不敏感导致网站链接404

    full Mac file system case sensitive

    误解Mac文件系统

    网站改版之后,全是使用Markdown格式编写文章,所以图片、文章的链接自然也都是手动编码校验,配合VSCode的Mackdown插件,在Markdown中插入图片时左侧会显示图片的缩略图,以此来确认图片链接是否正确。然后再build出HTML传送到服务器,一直这么用也没有注意到一个严重的大小写敏感的问题。

    ...

    READ ALL

  • Rust交叉编译Mac编译Linux平台

    full Rust cross compiler

    关于交叉编译

    绝大部分的Rust程序员都会有跟我我一样的需求,写代码用的是Windows或者Mac,部署平台是Linux,这种情况下就需要使用Cross-Compiler交叉编译,意思是可以在当前平台Host下编译出目标平台target的可执行文件,尤其是做ARM平台开发的同学对这个更为熟悉。

    Rust交叉编译在Github上有一个文档Rust核心员工Jorge Aparicio提供的一份文档https://github.com/japaric/rust-cross,推荐大家仔细的读一读。

    ...

    READ ALL

  • Rust actix-web框架跨域请求配置

    full actix cors set-up

    在做静态博客评论系统时使用的是与主站www.qttc.net不同的域cume.qttc.net,这会造成一个跨域问题。在浏览器下使用XML Http Request或者fetch发出一个HTTP请求,假如这个HTTP的协议、主机名或者端口任意一个与当前网页地址有不一致时,为了安全浏览器会限制响应结果,通常这类问题就是所谓的跨域问题。

    解决跨域问题的方式有很多,比如jsonpiframe等等。但在这里,我使用HTTP协议里约定的字段来解决这个问题,这也是最干净完美的解决方案。为了处理有跨域请求的特殊场景,HTTP协议里有一个特殊的响应头字段Access-Control-Allow-Origin,意思允许访问的Origin,值可以是通配符*,允许所有,或者写上一个具体的Origin值。

    ...

    READ ALL

  • Rust发送SMTP邮件例子

    full rust smtp example

    今天需要做一个功能特性,利用Rust发送SMTP邮件,SMTP是非常成熟通用的发送邮件通讯协议,在Python,NodeJS,Golang,Java里都有比较好用稳定的类库,自然想着Rust里也一定很容易找到相关类库。

    可惜Rust里却没有找到比较好用的类库,在Rust的官方类库网页crates.io搜一下SMTP,排名第一个是smtp,描述写着Simple SMTP client,觉得就是它了,我就想要一个简单的SMTP客户端发送文本文件,不需要附件,回执等其它功能。本想用它,结果发现它的文档页面404,再一看Last Updated是4年之前。

    ...

    READ ALL