边缘开发者平台
  • Pages
    • 产品简介
    • 快速开始
      • 导入 Git 仓库
      • 从模板开始
      • 直接上传
      • 从 AI 开始
    • 框架指南
      • 前端
        • Vite
        • React
        • Vue
        • Hugo
        • 其他框架
      • 后端
      • 全栈
        • Next.js
        • Nuxt
        • Astro
        • React Router
        • SvelteKit
        • TanStack Start
        • Vike
      • 自定义 404 页面
    • 项目指南
      • 项目管理
      • edgeone.json
      • 缓存配置
      • 构建输出配置
      • 错误码
    • 构建指南
    • 部署指南
      • 概览
      • 触发部署
      • 管理部署
      • 部署按钮
      • 使用 Github Action
      • 使用 Gitlab CI/CD
      • 使用 CNB 插件
      • 使用 IDE 插件
      • 使用 CodeBuddy IDE
    • 域名管理
      • 概览
      • 自定义域名
      • 配置 HTTPS 证书
        • 概览
        • 申请免费证书
        • 使用 SSL 托管证书
      • 配置 DNS 的 CNAME 记录
    • 可观测性
      • 概览
      • 指标分析
      • 日志分析
    • Pages Functions
      • 概览
      • Edge Functions
      • Cloud Functions
        • 概览
        • Node.js
        • Python
        • Go
    • 中间件
    • KV 存储
    • 边缘 AI
    • API Token
    • EdgeOne CLI
    • Copilot
      • 概览
      • 快速开始
    • Pages MCP
    • Pages Skills
    • 消息通知
    • 集成指南
      • AI
        • 对话型大模型集成
        • 图片大模型集成
      • 数据库
        • Supabase 集成
        • Pages KV 集成
      • 电商
        • Shopify 集成
        • WooCommerce 集成
      • 支付
        • Stripe 集成
        • Paddle 集成
      • CMS
        • WordPress 集成
        • Contentful 集成
        • Sanity 集成
        • Payload 集成
      • 身份验证
        • Supabase 集成
        • Clerk 集成
    • 最佳实践
      • AI 对话式部署:使用 Skill 一句话部署项目
      • 使用通用大模型快速搭建 AI 应用
      • 使用边缘 AI 模型快速搭建对话型 AI 站点
      • 使用 Shopify 搭建电商平台
      • 使用 Supabase 和 Stripe 搭建 SaaS 站点
      • 如何快速搭建公司品牌站点
      • 如何快速搭建博客站点
    • 迁移指南
      • 从 Vercel 迁移至 EdgeOne Pages
      • 从 Cloudflare Pages 迁移至 EdgeOne Pages
      • 从 Netlify 迁移至 EdgeOne Pages
    • 排障指南
    • 常见问题
    • 联系我们
    • 产品动态

Hugo

概述

EdgeOne Pages 内置了对 Hugo 静态站点生成框架的完整支持。当你将 Hugo 项目部署到 Pages 时,系统会自动检测项目类型、管理 Hugo 版本、执行构建并缓存构建产物,实现零配置的 Hugo 站点持续集成与部署。


核心特性

自动识别 Hugo 项目,无需额外声明。
内置 Hugo Extended 版本,支持 SCSS/SASS 编译。
灵活的版本管理,支持指定任意 Hugo 版本。
自动缓存构建产物,加速重复构建。


快速开始

项目要求

确保你的 Hugo 项目根目录包含以下任意一个配置文件或目录:
配置文件
说明
hugo.toml / hugo.yaml / hugo.json
Hugo 新版配置格式(推荐)
config.toml / config.yaml / config.json
Hugo 旧版配置格式
config/_default/ 目录
Hugo 多环境配置方式
系统通过检测这些文件自动判断项目是否为 Hugo 项目。

部署步骤

1. 创建 Hugo 项目
hugo new site my-site
cd my-site
2. 添加 edgeone.json 配置文件(可选但推荐)
// ./edgeone.json
{
"buildCommand": "hugo --minify",
"outputDirectory": "public"
}
3. 在本地开发完相关的页面
4. 推送代码到 Git 仓库
5. 在 Pages 控制台关联仓库并部署
系统会自动检测到 Hugo 项目并完成构建部署。


Hugo 版本管理

Pages 预装了 Hugo Extended v0.147.5 作为默认版本, 支持 SCSS/SASS 编译。

版本优先级

按以下优先级确定使用的 Hugo 版本(从高到低):
优先级
方式
说明
1(最高)
edgeone.jsonhugoVersion 字段
项目级配置,推荐使用
2
HUGO_VERSION 环境变量
运行时环境变量
3(最低)
预装版本
v0.147.5

方式一:通过 edgeone.json 指定版本(推荐)

在项目根目录的 edgeone.json 中添加 hugoVersion 字段:
{
"hugoVersion": "0.139.0",
"buildCommand": "hugo --minify",
"outputDirectory": "public"
}
注意:
版本号支持带或不带 v 前缀,例如 "0.139.0""v0.139.0" 均可。

方式二:通过环境变量指定版本

在 Pages 控制台的项目设置中,添加环境变量:
HUGO_VERSION=0.139.0

方式三:使用默认版本

如果未指定版本,系统将使用预装的 Hugo Extended v0.147.5


构建配置

构建命令

edgeone.json 中通过 buildCommand 配置 Hugo 构建命令:
{
"buildCommand": "hugo --minify",
"outputDirectory": "public"
}
常用的 Hugo 构建命令示例:
命令
说明
hugo
默认构建
hugo --minify
构建并压缩 HTML/CSS/JS
hugo --minify --gc
构建、压缩并清理未使用资源
hugo -e production
使用 production 环境配置构建
hugo --baseURL https://example.com
指定站点基础 URL

输出目录

Hugo 默认输出目录为 public,请在 edgeone.json 中将 outputDirectory 设置为 public(或你自定义的输出目录)。


构建缓存

Pages 会自动管理 Hugo 的构建缓存,无需手动配置。

缓存机制

缓存目录resources/_gen
缓存内容:Hugo 图片处理结果、SCSS/SASS 编译产物等生成资源。
恢复时机:每次构建开始前自动恢复上次缓存。
保存时机:每次构建完成后自动保存。

缓存效果

利用 resources/_gen 缓存,重复构建时可跳过已处理的图片和已编译的样式文件,显著减少构建时间。


支持的配置格式

Hugo 支持多种配置文件格式,Pages 均能正确识别:

单文件配置

my-hugo-site/
├── hugo.toml # 推荐
├── content/
├── layouts/
└── static/

旧版单文件配置

my-hugo-site/
├── config.toml # 旧版格式,仍然支持
├── content/
├── layouts/
└── static/

多环境配置(目录方式)

my-hugo-site/
├── config/
│ └── _default/
│ ├── hugo.toml
│ ├── params.toml
│ └── menus.toml
├── content/
├── layouts/
└── static/


常见问题

1. 如何确认系统检测到了我的 Hugo 项目?

构建日志中会出现 Hugo project detected. 提示,并显示当前使用的 Hugo 版本,例如:
Using Hugo v0.147.5

2. 构建报错提示 Hugo 版本不支持某功能怎么办?

检查你的 Hugo 主题或模板要求的最低版本,在 edgeone.json 中指定对应版本:
{
"hugoVersion": "0.128.0"
}

3. Hugo 安装失败(退出码 14)怎么办?

可能原因:
指定的 Hugo 版本号无效(不存在该版本的 Release)
网络问题导致下载失败
解决方法:
确认版本号正确,可在 Hugo Releases 页面查看所有可用版本
如果是临时网络问题,重新触发构建即可

4. 为什么使用的是 Hugo Extended 版本?

Hugo Extended 版本内置了对 SCSS/SASS 的编译支持,大多数 Hugo 主题都依赖此功能。Pages 始终安装 Extended 版本,确保与主流主题的兼容性。

5. Hugo 项目需要 package.json 吗?

不需要。Hugo 项目的检测独立于 Node.js 生态,系统通过 Hugo 配置文件(如 hugo.toml)进行检测。但如果你的项目同时使用了 npm 包(如 PostCSS),可以同时包含 package.json

6. 如何清除构建缓存?

如果遇到缓存导致的构建异常,可以在构建命令中添加清理步骤:
{
"buildCommand": "rm -rf resources/_gen && hugo --minify",
"outputDirectory": "public"
}


完整配置示例

最小配置

项目根目录只需包含 Hugo 配置文件(如 hugo.toml),系统将使用默认版本和默认构建行为。

推荐配置

edgeone.json
{
"hugoVersion": "0.147.5",
"buildCommand": "hugo --minify",
"outputDirectory": "public"
}

高级配置(多环境)

edgeone.json
{
"hugoVersion": "0.147.5",
"buildCommand": "hugo --minify -e production",
"outputDirectory": "public"
}