接 上篇博客 , 尝试在 GCP 的 OSS 上部署静态博客受挫之后, 痛定思痛, 决定先做一个小小的调查, 再敲定最终的部署方案. 这时候搜到一篇非常棒的文章: 静态网站托管服务平台的横向方案比较 . 正是在这篇文章中, 我第一次了解到了Netlify. 并一见钟情了, 因为在 Net 整个部署过程中, 你只需要提交代码, 其余的 master 部署预览(包括 MR 的预览), HTTPS 证书, 静态资源的优化与 CDN 加速, 部署消息通知, 等等都不用再操心. 真的是太优雅了 XD
创建项目
在 Netlify 注册后的第一次创建项目, 然后授权选择 GitHub 分支时, 就把我惊艳到了: Netlify 会自动检测到该 repo 为 hexo 项目, 并自动配置 build command
和publish 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 也有一些相对的缺点:
- 速度和阿里云的 ecs 或 oss 比起来还是要一些差距的.
- 不能检测到 git submodule 的变更.