最近把 Hugo 博客部署到 Cloudflare Pages,看着简单,结果踩了一堆坑。记录一下,给后面的人省点时间。

坑一:主题文件别手写

一开始图省事,手动推了个简化版 PaperMod 主题到仓库。结果功能不全、CSS 缺失、搜索用不了。

正确做法: 构建时直接拉官方主题,别自己维护一份。

git clone --depth 1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod

坑二:HUGO_VERSION 必须和主题匹配

PaperMod 要求 Hugo >= 0.146.0,但 Cloudflare 默认可能是老版本。

解决: 在 Cloudflare Pages 环境变量里指定版本。

HUGO_VERSION = 0.146.0

坑三:TOML 语法别用 YAML 的写法

minify: 这种冒号写法是 YAML 的,TOML 要用 [minify] 表头。Cloudflare 用的是标准 TOML 解析器,一个字符错就整个构建失败。

[minify]
disableXML = true

坑四:代码块要标注语言

Markdown 代码块如果不标注语言,Hugo 可能渲染异常。目录结构这种用 text

project/
|-- file1.py
+-- file2.py

坑五:域名要加到 Pages 白名单

光在 DNS 配 CNAME 不够,Pages 项目本身也要把域名加进去,否则不响应请求。

坑六:构建日志看不到

Cloudflare Pages 的构建日志 API 不开放,只能网页上看。构建失败时,把日志贴出来就能定位。

总结

其实核心就一句话:跟官方 exampleSite 对齐,别自己发挥。 主题、版本、配置、域名,全都按官方来,基本不会出问题。


本文由 AI 辅助生成。