用 Cloudflare Workers 部署 Hugo 静态博客

起因

今天本来打算用 Cloudflare Pages 跑一个静态博客,但在新建项目时看到提示:

我们建议在新项目中使用 Cloudflare Workers
请在我们的兼容性矩阵中查看 Workers 与 Pages 的比较。

于是我就研究了一下,发现其实 Cloudflare Workers 也能直接部署 Hugo 静态博客,而且过程非常简单。

1. 安装 Hugo

首先需要在本地安装 Hugo

sudo apt install hugo

安装好后检查一下版本:

hugo version

2. 初始化博客项目

创建一个新的 Hugo 站点:

hugo new site blog
cd blog

接下来挑选一个主题,例如 Diary。 把主题拉到本地:

git init
git submodule add -b main https://github.com/AmazingRise/hugo-theme-diary.git themes/diary

然后复制主题的 exampleSite 配置文件:

cp -r themes/diary/exampleSite/* .

这样站点就具备了可运行的配置和示例内容。

本地启动预览:

hugo server -D

浏览器打开 http://localhost:1313,可以看到主题示例站点。

3. 配置 wrangler.jsonc 部署设置文件

{
  "name": "example-com",
  "compatibility_date": "2025-07-20",
  "assets": {
    "directory": "./public",
    "html_handling": "auto-trailing-slash",
    "not_found_handling": "404-page",
    "run_worker_first": false
  },
  "build": {
    "command": "hugo build --gc --minify"
  },
  "workers_dev": true,
  "preview_urls": true
}

4. 推送到 GitHub

接下来把项目推送到 GitHub 仓库(Workers 会直接拉取这个仓库进行构建):

git add .
git commit -m "init hugo blog"
git remote add origin git@github.com:你的用户名/仓库名.git
git push -u origin main

5. 在 Cloudflare Workers 部署

这里是关键步骤。

  1. 登录 Cloudflare 控制台
  2. 进入 Workers & Pages → Workers
  3. 点击 创建应用程序
  4. 选择 连接到 Git 仓库
  5. 选择刚刚推送的 Hugo 博客仓库
  6. 点击部署

Cloudflare Workers 自带 Hugo 构建环境,不需要你在本地写额外的 wrangler.json 或安装 wrangler CLI。只要仓库里有 Hugo 项目,Workers 就能直接完成构建和托管。

6. 访问博客

部署完成后,你会得到一个 Workers 的域名,例如:

https://你的项目名.你的账号.workers.dev

当然你也可以在 Cloudflare 控制台里给它绑定自定义域名。


最后修改于 2025-08-23