这个 Hexo 站点此前一直是托管于 GitHub Pages,生成后的内容及源文件分别位于同一个仓库的两个分支,源文件位于主分支,部署文件位于 Hexo 分支。图片也直接放在 _post/assets 文件夹内,每次部署完成后将源文件推送到主分支进行备份以及多台设备之间同步。
这样的方案主要缺点是加载速度慢,尤其是图片资源,百十来 kb 的截图类内容还好说,放照片的话加载速度是难以忍受的。不过我一直将站点是为日记本来用,并没有其他读者访问,所以没有优化的动力。
近期折腾比较多,在研究图片托管方案时才知道其实 Cloudflare 也有 Pages 服务,迁移起来也比较方便,只要连接一下 GitHub 上原来的这个仓库即可。考虑到域名、图片都是用的 Cloudflare 的免费服务了,干脆直接把整个站点迁移过来。
过程比较简单就不赘述了,迁移过来之后顺便改了一下原始仓库的名字。因为之前部署在 GitHub Pages 上时,GitHub 对 Pages 仓库名字有固定格式要求,即 yourname.github.io
, 这个名字太长了不太方便。Cloudflare 没有这方面的要求,就可以设置一个比较短的仓库名字。
迁过来之后部署流程也简化了。以前需要本地生成、部署,然后推送源文件到 GitHub 进行备份,现在则只要推送即可了,Cloudflare Pages 侦测到仓库的变化后自动进行部署,几乎是实时的。
不过我通常还是会先本地生成预览一下再推送,所以总体上工作量没减少,只是逻辑变化了。
也有一个小小的缺点是,以前有一些没写完的草稿,可以先推送的远端仓库,下一次在另一台设备上继续写。现在一推送就会被生成部署,就不能这么操作了,选用了其他的草稿同步方案。不过问题也不大,之前那种形式,也只适用于一篇草稿,现在逐渐会有多篇草稿共存的情况,本来也需要采用其他同步方案了。