HUGO

  • 新闻
  • 文档
  • 主题
  • 社区
  • GitHub
gohugoio 加星
  • 关于
    • 在本节中
    • 简介
    • 特性
    • 隐私
    • 安全
    • 许可证
  • 安装
    • 在本节中
    • macOS
    • Linux
    • Windows
    • BSD
  • 入门
    • 在本节中
    • 快速开始
    • 基本用法
    • 目录结构
    • 配置
    • 配置标记
    • 配置构建
    • 术语表
    • 外部学习资源
  • 快速参考
    • 在本节中
    • 表情符号
    • 函数
    • 方法
    • 页面集合
  • 内容管理
    • 在本节中
    • 组织
    • 页面捆绑
    • 内容格式
    • 前言
    • 构建选项
    • 页面资源
    • 图像处理
    • 短代码
    • 相关内容
    • 章节
    • 内容类型
    • 原型
    • 分类
    • 摘要
    • 链接和交叉引用
    • URL 管理
    • 菜单
    • 评论
    • 多语言
    • Markdown 属性
    • 语法高亮
    • 图表
    • 数学
    • 数据源
    • 内容适配器
  • 模板
    • 在本节中
    • 简介
    • 模板类型
    • 查找顺序
    • 基础模板
    • 主页模板
    • 单页模板
    • 章节模板
    • 分类模板
    • 术语模板
    • 局部模板
    • 内容视图模板
    • 短代码模板
    • 站点地图模板
    • RSS 模板
    • 404 模板
    • robots.txt 模板
    • 菜单
    • 分页
    • 嵌入式模板
    • 自定义输出格式
  • 函数
    • 在本节中
    • cast
    • collections
    • compare
    • crypto
    • css
    • data
    • debug
    • diagrams
    • encoding
    • fmt
    • global
    • go 模板
    • hash
    • hugo
    • images
    • inflect
    • js
    • lang
    • math
    • openapi3
    • os
    • partials
    • path
    • reflect
    • resources
    • safe
    • strings
    • templates
    • time
    • transform
    • urls
  • 方法
    • 在本节中
    • 持续时间
    • 菜单
    • 菜单项
    • 页面
    • 分页器
    • 页面
    • 资源
    • 短代码
    • 站点
    • 分类
    • 时间
  • 渲染钩子
    • 在本节中
    • 简介
    • 块引用
    • 代码块
    • 标题
    • 图片
    • 链接
    • 直通
    • 表格
  • 短代码
    • 在本节中
    • 评论
    • 详情
    • 图表
    • Gist
    • 高亮
    • Instagram
    • 参数
    • QR
    • Ref
    • Relref
    • Vimeo
    • X
    • YouTube
  • Hugo 模块
    • 在本节中
    • 配置 Hugo 模块
    • 使用 Hugo 模块
    • 主题组件
  • Hugo 管道
    • 在本节中
    • 简介
    • 将 Sass 转译为 CSS
    • PostCSS
    • 后处理
    • JavaScript 构建
    • 资源压缩
    • 连接资源
    • 指纹和 SRI 哈希
    • 从字符串创建资源
    • 从模板创建资源
  • CLI
  • 故障排除
    • 在本节中
    • 审计
    • 日志记录
    • 检查
    • 弃用
    • 性能
    • 常见问题
  • 开发者工具
    • 在本节中
    • 编辑器插件
    • 前端
    • 搜索
    • 迁移
    • 其他项目
  • 托管和部署
    • 在本节中
    • Hugo 部署
    • 使用 Rclone 部署
    • 使用 Rsync 部署
    • 在 21YunBox 上托管
    • 在 AWS Amplify 上托管
    • 在 Azure Static Web Apps 上托管
    • 在 Cloudflare Pages 上托管
    • 在 Firebase 上托管
    • 在 GitHub Pages 上托管
    • 在 GitLab Pages 上托管
    • 在 KeyCDN 上托管
    • 在 Netlify 上托管
    • 在 Render 上托管
  • 贡献
    • 在本节中
    • 开发
    • 文档
    • 主题
  • 维护
托管和部署

在 KeyCDN 上托管

通过 KeyCDN 集成在全球范围内加速您的 Hugo 站点。本教程将向您展示如何将您的静态站点设置为 KeyCDN 拉取区域后的 GitLab 页面。

KeyCDN 提供了多种功能,可帮助在全球范围内加速和保护您的 Hugo 站点,包括 Brotli 压缩、Let's Encrypt 支持、源站保护等。

假设

  • 您已经配置了一个 Hugo 页面
  • 您拥有一个 GitLab 帐户
  • 您拥有一个 KeyCDN 帐户

创建 KeyCDN 拉取区域

第一步是登录您的 KeyCDN 帐户并创建一个新区域。 随意命名,然后选择拉取区域选项。至于原始 URL,您的站点将在 GitLab Pages 上运行,URL 为 https://youruser.gitlab.io/reponame/。将其用作原始 URL。

Screenshot of KeyCDNs pull zone creation page

虽然原始位置尚不存在,但您需要在将上传到 GitLab 项目的 .gitlab-ci.yml 文件中使用新的区域 URL 地址(或区域别名)。

确保在下面的示例中使用您的区域 URL 或区域别名作为 BASEURL 变量。这将是用户可见的网站地址。

配置您的 .gitlab-ci.yml 文件

您的 .gitlab-ci.yml 文件应类似于以下示例。 请务必修改任何特定于您的设置的变量。

image: alpine:latest

variables:
    BASEURL: "https://cipull-7bb7.kxcdn.com/"
    HUGO_VERSION: "0.26"
    HUGO_CHECKSUM: "67e4ba5ec2a02c8164b6846e30a17cc765b0165a5b183d5e480149baf54e1a50"
    KEYCDN_ZONE_ID: "75544"

before_script:
    - apk update
    - apk add curl

pages:
    stage: deploy
    script:
    - apk add git
    - git submodule update --init
    - curl -sSL https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz -o /tmp/hugo.tar.gz
    - echo "${HUGO_CHECKSUM}  /tmp/hugo.tar.gz" | sha256sum -c
    - tar xf /tmp/hugo.tar.gz hugo -C /tmp/ && cp /tmp/hugo /usr/bin
    - hugo --baseURL ${BASEURL}
    - curl "https://api.keycdn.com/zones/purge/${KEYCDN_ZONE_ID}.json" -u "${KEYCDN_API_KEY}:"
    artifacts:
    paths:
    - public
    only:
    - master

使用此集成方法,您必须指定区域 ID 和您的 KeyCDN API 密钥作为秘密变量。 为此,请导航到 GitLab 左上角的菜单栏,然后选择“项目”。 然后,选择您的项目并单击“设置”页面。 最后,从子菜单中选择“管道”,然后向下滚动到“秘密变量”部分。

您的区域 ID 的秘密变量应类似于

Screenshot of setting the Zone ID secret variable

而您的 API 密钥的秘密变量应类似于

Screenshot of setting the API Key secret variable

区域 ID 和 API 密钥用于清除您的区域——这不是严格必需的,否则,CDN 可能会在很长一段时间内提供旧版本的资源。

将您的更改推送到 GitLab

现在是将新创建的存储库推送到 GitLab 的时候了

git remote add origin git@gitlab.com:youruser/ci-example.git
git push -u origin master

您可以在 GitLab 项目的“管道”下查看进度和 CI 作业输出。

在验证您的 CI 作业运行无误后,首先检查您的 GitLab 页面是否显示在 https://youruser.gitlab.io/reponame/ 下(由于所有链接都指向您的 KeyCDN 区域,因此它可能看起来已损坏,具体取决于您的浏览器设置 - 不用担心),然后前往您定义的任何区域别名/区域 URL。

要了解有关使用 KeyCDN 的 Hugo 托管选项的更多信息,请查看完整的使用 KeyCDN 集成的 Hugo 托管指南。

另请参阅

  • 在 Firebase 上托管
  • 在 GitLab Pages 上托管
  • 在 Render 上托管
  • 使用 Rclone 部署
  • 使用 Rsync 部署
上次更新时间:2023 年 12 月 4 日:从 4d936aee6..4dd2d6415 合并的“docs/”更改 (35dec7c96)
改进此页面
由 Hugo 作者
Hugo Logo
  • 提交问题
  • 获取帮助
  • @GoHugoIO
  • @spf13
  • @bepsays

Netlify badge

 

Hugo 赞助商

您的公司?
 

Hugo 徽标的版权归 Steve Francia 2013–2025 所有。

Hugo Gopher 基于 Renée French 的原创作品。

  • 新闻
  • 文档
  • 主题
  • 社区
  • GitHub
  • 关于
  • 安装
  • 入门
  • 快速参考
  • 内容管理
  • 模板
  • 函数
  • 方法
  • 渲染钩子
  • 短代码
  • Hugo 模块
  • Hugo 管道
  • CLI
  • 故障排除
  • 开发者工具
  • 托管和部署
  • 贡献
  • 维护