前言

差不多四年前,我将我的个人博客从Word Press迁移到了Hexo,不可否认的是两者都是非常好的CMS,而且具有不同的特点。

  1. WordPress:

    • 由于是动态生成的,性能受限于服务器的处理能力。

    • 由于其广泛使用,成为攻击者的目标,安全性需要特别关注。

  2. Hexo:

    • 生成静态页面,通常加载速度更快,安全漏洞相对较少。

    • 因为是静态文件,不容易受到常见的攻击。

我选择Hexo的原因也是因为我希望博客的访问速度更快,也更安全。

四年前的设计

四年前借助 Cloudflare Workers,它利用了赛博菩萨 Cloudflare 的无服务器架构,可以直接在边缘网络上运行 JavaScript 代码,通过这种方式,用户的请求可以在离他们最近的地点处理,从而提高响应速度,减少延迟。

它确实很快,但是对于博客来说,也有缺点。

有一点 Overkill

发布博客的过程需要借助 wrangler 来 Push 内容到 Cloudflare KV 里,简单来说你可以理解为把你的 KV 绑定到 Worker 上,然后 Worker 读取 KV 里渲染好的HTML。这对于功能强大的 Worker 和 KV 来说有点大材小用了。

版本控制

通过上述的发布过程你也可以看到,由于你 Push 到 KV 里的文件是已经渲染好的HTML,因此你只能在本地保存编辑原始的 .md 文件以及各种各样的配置。这会带来很多问题。

  1. 没有办法回滚版本
  2. 原始 .md 文件或配置丢失会很麻烦(虽然可以存在云上作为workaround)
  3. 额外安装wrangler

四年后的方案

赛博菩萨 的新静态网页托管服务 Cloudflare Pages 已经结束了内测,转念一想要么 Cloudflare Pages 算了,反正都不要钱

简单来说 Cloudflare Pages 可以同步到你 git 提供商(GitHub 和 GitLab),并自动构建且部署静态站点到 Cloudflare 的网络。这也意味着更方便回滚至先前的版本。Cloudflare Pages 集成了持续集成和持续部署(CI/CD),每次提交到代码仓库时,Cloudflare Pages 都会自动构建和发布最新版本的网站,而且相比较wrangler 我相信大多数人更熟悉 git

于是乎我就把我的博客迁移到了 Cloudflare Pages

小Tips

  1. 目前Cloudflare Pages官方不支持Hexo,贴上我的构建配置作为参考。

image-20240917163707869

  1. 安装主题的方法和以往有所不同,直接 clone 到 themes 目录下会有问题,我以我用的主题为例,作为参考。
1
2
git submodule add https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
git submodule update --init --recursive

除此之外,绑定域名啊之类的,都是老生常谈, 就省略不提了。