Files
hextra_mirror/exampleSite/content/docs/guide/deploy-site.zh-cn.md
Ludovic Fernandez f4d75a4e5b feat(callout): revamp of the callouts (#767)
* feat(callout): revamp of the callouts

* fix: doc

* chore: refactor gh alert

* feat: same colors on callouts and gh alerts

* docs: more relevant examples

* docs: i18n

* docs: update existing callouts
2025-08-21 23:31:16 +01:00

5.1 KiB
Raw Blame History

title, prev, next
title prev next
部署站点 /docs/guide/shortcodes /docs/advanced

Hugo 生成静态网站,支持灵活的托管方案。 本页提供在各类平台上部署 Hextra 站点的指南。

GitHub Pages

GitHub Pages 是推荐的免费部署托管方案。

若使用 hextra-starter-template 初始化项目,已内置 GitHub Actions 工作流,可自动部署至 GitHub Pages。

{{% details title="GitHub Actions 配置" closed="true" %}}

以下是 hextra-starter-template 的示例配置:

# 构建并部署 Hugo 站点到 GitHub Pages 的示例工作流
name: 部署 Hugo 站点到 Pages

on:
  # 针对默认分支的推送触发
  push:
    branches: ["main"]

  # 允许从 Actions 标签手动运行
  workflow_dispatch:

# 设置 GITHUB_TOKEN 权限以允许部署到 GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# 仅允许一个并发部署,跳过正在运行与最新排队之间的运行
# 但不会取消进行中的运行,以确保生产部署完成
concurrency:
  group: "pages"
  cancel-in-progress: false

# 默认使用 bash
defaults:
  run:
    shell: bash

jobs:
  # 构建任务
  build:
    runs-on: ubuntu-latest
    env:
      HUGO_VERSION: 0.147.7
    steps:
      - name: 检出代码
        uses: actions/checkout@v4
        with:
          fetch-depth: 0  # 获取完整历史记录以支持 .GitInfo 和 .Lastmod
          submodules: recursive
      - name: 设置 Go 环境
        uses: actions/setup-go@v5
        with:
          go-version: '1.22'
      - name: 配置 Pages
        id: pages
        uses: actions/configure-pages@v4
      - name: 安装 Hugo
        run: |
          wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
          && sudo dpkg -i ${{ runner.temp }}/hugo.deb
      - name: 使用 Hugo 构建
        env:
          # 为 Hugo 模块提供最大兼容性
          HUGO_ENVIRONMENT: production
          HUGO_ENV: production
        run: |
          hugo \
            --gc --minify \
            --baseURL "${{ steps.pages.outputs.base_url }}/"
      - name: 上传产物
        uses: actions/upload-pages-artifact@v3
        with:
          path: ./public

  # 部署任务
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: 部署到 GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

{{% /details %}}

{{< callout type="warning" >}} 在仓库设置中,将 Pages > 构建与部署 > 设为 GitHub Actions {{< /callout >}}

默认配置中GitHub Actions 工作流 .github/workflows/pages.yaml 假设站点部署在 https://<用户名>.github.io/<仓库名>/

若需部署到 https://<用户名>.github.io/,请修改 --baseURL

54 55 56 57 run: | hugo \ --gc --minify \ --baseURL "https://${{ github.repository_owner }}.github.io/"

若使用自定义域名,请相应调整 --baseURL 值。

Cloudflare Pages

  1. 将站点源码存入 Git 仓库(如 GitHub
  2. 登录 Cloudflare 控制台 并选择账户
  3. 在账户首页选择 Workers & Pages > 创建应用 > Pages > 连接 Git
  4. 选择仓库后,在 设置构建与部署 部分填写:
配置项
生产分支 main
构建命令 hugo --gc --minify
构建输出目录 public

更多细节请参阅:

Netlify

  1. 将代码推送到 Git 仓库GitHub/GitLab 等)
  2. 在 Netlify 中导入项目
  3. 若未使用 [hextra-starter-template][hextra-starter-template],需手动配置:
    • 构建命令设为 hugo --gc --minify
    • 发布目录设为 public
    • 添加环境变量 HUGO_VERSION 并设为 0.147.7,或在 netlify.toml 中配置
  4. 开始部署!

详见 Netlify 上的 Hugo

Vercel

  1. 将代码推送到 Git 仓库GitHub/GitLab 等)
  2. 进入 Vercel 控制台 导入 Hugo 项目
  3. 配置项目时选择 Hugo 作为框架预设
  4. 覆盖构建命令与安装命令:
    1. 构建命令设为 hugo --gc --minify
    2. 安装命令设为 yum install golang

Vercel 部署配置