Non-Profit, International

Spirit unsterblich.

从 Cloudflare Pages 迁移静态博客到 Workers

字数统计:524

Cloudflare 去年开始就宣布不再维护 Pages,推荐迁移到 Workers,今年甚至已经把创建 Pages 的入口变成了创建 Worker 页面底部的一行字,因此迁移到 Workers 确实需要划入日程。

本文假定使用的博客框架是静态博客,并且使用 Cloudflare 提供的 Github/Gitlab 绑定。

实际上迁移方法非常简单:

  1. 在仓库根目录中添加一个 wrangler.json 或者 wrangler.toml。

  2. 创建一个 Workers 应用,选择 Github 或者 Gitlab,然后编辑构建命令,对于 Jekyll 来说是 bundle install && bundle exec jekyll build,对于 Node.js 来说是 npm run build,然后取消“非生产分支构建”复选框。

  3. 点击部署即可将博客部署在 Cloudflare Worker 上。

  4. 如果你先前在 Wrangler 配置文件中不使用 Cloudflare 提供的域名,此时需要在 Worker 设置中手动添加需要的域名。

  5. 此时,可以检查博客是否正常运行,然后就可以删除过时的 Pages 应用。

wrangler.json 的例子如下:

 JSON
{
    "name": "blog",
    "compatibility_date": "2026-02-08",
    "workers_dev": false,
    "preview_urls": false,
    "assets": {
        "directory": "_site",
        "not_found_handling": "404-page"
    }
}

其中 name 字段需要在后续步骤匹配 Workers 的项目名,注意它可以和现有的 Pages 项目名重名。

compatibility_date 字段是必须的,可以和我一样填为 2026-02-08

worker_dev 字段决定是否开启 Cloudflare 提供的 project.user.workers.dev 域名,如果有自己的域名,设置为 false

preview_urls 字段决定是否开启 Cloudflare 提供的非生产环境域名,一般不需要所以设置为 false

assets.directory 字段用于设置静态网站构建目录,一般来说是 _site 或者 dist

assets.not_found_handling 用于控制 404 页面,它可以被设置为 single-page-application404-page 或者 none,如果设
none 则使用 Cloudflare 提供的 404 页面,如果设置为 404-page 则会使用构建目录下的 404.html。

Wrangler 配置文件的文档在 Configuration


若无特殊声明,本人原创文章以 CC BY-SA 4.0许可协议 提供。