部署 Hexo 静态博客 (下) - 偶遇 Netlify, 优雅地持续部署你的博客

上篇博客 , 尝试在 GCP 的 OSS 上部署静态博客受挫之后, 痛定思痛, 决定先做一个小小的调查, 再敲定最终的部署方案. 这时候搜到一篇非常棒的文章: 静态网站托管服务平台的横向方案比较 . 正是在这篇文章中, 我第一次了解到了Netlify. 并一见钟情了, 因为在 Net 整个部署过程中, 你只需要提交代码, 其余的 master 部署预览(包括 MR 的预览), HTTPS 证书, 静态资源的优化与 CDN 加速, 部署消息通知, 等等都不用再操心. 真的是太优雅了 XD

创建项目

在 Netlify 注册后的第一次创建项目, 然后授权选择 GitHub 分支时, 就把我惊艳到了: Netlify 会自动检测到该 repo 为 hexo 项目, 并自动配置 build commandpublish directory. 非常的人性化.

点点鼠标三步上线网站

第一步: 自动部署

不用做任何设置, 每次 master 分支有更新代码, Netlify 就会帮你自动部署代码. 图中左下角为 master 分支的每次部署记录, 右下角为每个 PR 的部署, 而且和 master 分支一样, 会次部署会提供 url 供用户预览网站效果.

实时看到部署的日志:

监测到我刚开始写博客时, 一些外链图片的 http 与 https 混用, 太酷了:

第二步: 修改 cname 绑定域名

第三步: 开启 HTTPS

自动生成 Let’s Encrypt 的证书, 也支持上传自己的证书.
文档: https://www.netlify.com/docs/ssl/

其他优势:

提供 webhook 的形式触发部署

自动在每个页面注入 html 代码, 适用于一些验证的场景.

自动优化

其中例如图片的无损压缩感觉还是挺有意义的.

通知:

部署成功 / 失败可以通过各种形式传递到用户.

一键 HTTPS

(TODO: 其他优点)

缺点:

当然世界上没有什么东西是完美的, netlify 也有一些相对的缺点:

  1. 速度和阿里云的 ecs 或 oss 比起来还是要一些差距的.
  2. 不能检测到 git submodule 的变更.