HUGO
Menu
GitHub 87548 stars Mastodon

使用 hugo 部署

使用 hugo 命令行工具部署您的网站。

使用 hugo deploy 命令将您的网站部署到 Amazon S3、Azure Blob Storage 或 Google Cloud Storage。

此功能需要 Hugo extended/deploy 版本。详见 安装 部分。

假设

  1. 您已完成 快速入门,或已准备好部署并分享您的 Hugo 网站。

  2. 您拥有要部署的服务提供商(AWSAzureGoogle Cloud)的账户。

  3. 您已完成身份验证。

    每个服务支持多种身份验证方法,包括环境变量。详见 详情

  4. 您已创建要部署到的存储桶。如果您希望网站公开,请确保将存储桶配置为静态网站公开可读。

配置

在您的 网站配置 中创建部署目标。唯一必需的参数是 nameurl

deployment:
  targets:
  - name: production
    url: s3://my_bucket?region=us-west-1
[deployment]
  [[deployment.targets]]
    name = 'production'
    url = 's3://my_bucket?region=us-west-1'
{
   "deployment": {
      "targets": [
         {
            "name": "production",
            "url": "s3://my_bucket?region=us-west-1"
         }
      ]
   }
}

部署

要部署到目标:

hugo deploy [--target=<target name>]

此命令将本地 public 目录(默认发布目录)的内容与目标存储桶同步。如果未指定目标,Hugo 将部署到第一个配置的目标。

有关更多命令行选项,请参阅 hugo help deployCLI 文档

文件列表创建

hugo deploy 通过遍历本地发布目录和远程存储桶来创建本地和远程文件列表。包含和排除由部署目标的 配置 确定:

  • include:默认跳过所有文件,除非匹配该模式。
  • exclude:跳过匹配该模式的文件。

在创建本地文件列表期间,Hugo 会跳过 .DS_Store 文件和隐藏目录(以句点开头,如 .git),但 .well-known 目录除外(如果存在则遍历)。

文件列表比较

Hugo 比较本地和远程文件列表以识别必要的更改。它首先比较文件名。如果两者都存在,则比较大小和 MD5 校验和。任何差异都会触发重新上传,并且本地不存在的远程文件将被删除。

由于 include/exclude 配置而被排除的远程文件不会被删除。

--force 标志强制所有文件重新上传,即使 Hugo 未检测到本地/远程差异。

--confirm--dryRun 标志使 Hugo 显示检测到的差异,然后暂停或停止。

同步

Hugo 将更改应用到远程存储桶:上传缺失或更改的文件,并删除本地不存在的远程文件。上传的文件头根据匹配器配置在远程配置。

为防止意外数据丢失,Hugo 默认不会删除超过 256 个远程文件。使用 --maxDeletes 标志可覆盖此限制。

高级配置

请参阅 配置部署


Last updated: January 1, 0001
Improve this page