将博客迁移至 Cloudflare Pages
2021-02-22 18:01:00

之前看过 苏卡卡大佬将博客部署在 Cloudflare Workers Site 的文章,但最后被 5$/mo 的价格劝退。虽然后来免费了 |´・ω・)ノ

后来,Cloudflare Pages 开放内测申请,我立马就申请了权限,终于在前几天获得了资格。

迁移过程

给予 Cloudflare 读取你仓库的权限,然后选择项目框架(Hexo)和部署分支,稍等片刻就部署好了。

部署过程花费了大约 1 分 30 秒,比 GitHub Actions 和 Vercel 慢一些,应该是网络原因。

最后,加入自定义域名,添加解析记录。等待 DNS 刷新,开发者工具 NetWork 选项卡出现 x-server: Cloudflare Pages 就代表迁移成功。

这样,博客就直接部署在 Cloudflare 全球的节点中,免去了回源的时间,直接飞起。

免费额度

  • 每月构建次数:500 次
  • 自定义域名:10 个
  • 文件:20000 个
  • 总大小:25 MB
  • 流量:无限

一些问题

后缀 308 跳转

当你访问以 .html 结尾的页面时,Cloudflare Pages 会将你 308 重定向至没有 .html 结尾的页面(隐藏后缀名)。

这特性会引出些问题,例如评论列表获取失效等,我觉得其实像 GitHub Pages 一样两者皆可就挺好的。

对于我没什么影响,因为我生成的文件没有以 .html 结尾。

无法强制 SSL

这点就很淦,我已经在 Cloudflare 的设置里设置了自动 HTTPS 跳转,还额外设置了一条 Page Rules,都没有用。

最后,我通过 JavaScript 勉强解决了这个问题:

1
2
3
4
var isHttps = 'https:' == document.location.protocol ? true : false;
if (!isHttps) {
window.location.href = "https://"+window.location.host+window.location.pathname;
}

无法删除域名

无法更改绑定仓库

目前 Cloudflare Pages 仍在内测阶段,确实有许多的问题,希望后续能有设置选项并修复问题。