经过一番折腾,我的 Hugo 博客成功部署到了腾讯云 EdgeOne Pages。相比 Vercel,EdgeOne Pages 提供了更贴合国内用户的访问体验。本文将详细记录部署过程中遇到的问题和解决方案。

1. 为什么选择 EdgeOne Pages?

EdgeOne Pages 是腾讯云推出的全栈开发部署平台,主要优势:

  • 全球加速:超过 3200+ 边缘节点,国内访问极速稳定。
  • 本地静态加密支持:jijian 主题的 本地静态加密 功能在 EdgeOne Pages 上可以完美运行。
  • 配置简单:通过 edgeone.json 即可自动化处理构建环境。

2. 自动化部署方案(推荐)

这是最简单的方式,利用主题内置的 配置工具 一键生成必要文件。

  1. 使用工具:在主题仓库中有极简(jijian)配置工具-config-tools.html文件,双击打开。
  2. 配置依赖
    • 在“依赖项”中勾选 “部署在腾讯 EdgeOne Pages”
    • 确认 Hugo 版本号(推荐 0.158.0),或最新版都是可以的,大不了构建失败,再改就是了。
  3. 导出文件
    • 点击 “导出 package.json” 并放入博客根目录。
    • 点击 “导出 edgeone.json” 并放入博客根目录。
  4. 推送部署:将文件提交到 GitHub。EdgeOne 会自动读取 edgeone.json 并在构建时自动下载 Hugo。

3. 手动配置参数(备选)

如果您在控制台中手动配置项目,请务必填写以下关键参数:

3.1 安装命令 (Install Command) 🔧

EdgeOne 默认环境没有 Hugo(截止到2026年3月22日),必须手动安装:

1
curl -L -o hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v0.158.0/hugo_extended_0.158.0_linux-amd64.tar.gz && tar -xzf hugo.tar.gz && npm install

3.2 编译命令 (Build Command) 🚀

为了确保能找到 Hugo 并且执行加密脚本,推荐使用:

1
PATH=$PATH:. npm run build

或者手动输入完整路径:

1
./hugo --gc --minify && node themes/jijian/assets/js/encrypt.js && npx pagefind --site public --output-path public/pagefind

3.3 输出目录 (Output Directory)

设置为 public

4. 环境变量配置 🔑

在 EdgeOne Pages 控制台的环境变量中添加:

变量名 变量值 说明
HUGO_BASEURL https://your-domain.com/ 线上正式域名

5. 本地加密:实现文章密码保护

方案优势

  • 极致安全:正文内容在服务器上就已经加密。
  • 全平台支持:同样的构建逻辑,在 Vercel 或 Cloudflare Pages 上完全通用。
  • 部署简单:仅需在 package.json 的 build 脚本中包含扫描指令。

6. 常见踩坑记录

6.1 Hugo 未安装

现象hugo: command not found 原因:未配置安装命令或安装命令不包含下载 Hugo。请参考 3.1 节。

6.2 找不到编译路径

现象:安装命令正确,但构建依然报错 hugo: command not found解决:在编译命令中使用 PATH=$PATH:. 前缀,或使用 ./hugo

6.3 权限错误

现象:使用 chmod 修改权限失败。 原因:EdgeOne 环境限制了 chmod。事实上 tar 解压出来的二进制包已具备执行权限,直接执行即可。

7. 总结

要在 EdgeOne Pages 成功部署,关键在于:环境预备(安装命令下载 Hugo)全流程构建(确保执行 encrypt.js)。 建议始终保持项目根目录有正确的 edgeone.json,这是最省心的方式。