Skip to main content

关于 GitHub Pages 站点的 Jekyll 构建错误

如果在本地或 GitHub 上构建 GitHub Pages 站点发生 Jekyll 错误,您将收到一条错误消息,其中包含相关详细信息。

GitHub Pages 适用于具有 GitHub Free 和组织的 GitHub Free 的公共仓库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库。 有关详细信息,请参阅“GitHub 的产品”。

关于 Jekyll 构建错误

如果从分支发布,则将更改推送到站点的发布源后,有时, GitHub Pages 不会尝试生成站点。

  • 推送更改的人尚未验证他们的电子邮件地址。 有关详细信息,请参阅“验证电子邮件地址”。
  • 您使用部署密钥推送。 如果要自动推送到站点的仓库,您可以改为设置计算机用户。 有关详细信息,请参阅“管理部署密钥”。
  • 您使用的是未配置为构建发布源的 CI 服务。 例如,Travis CI 不会生成 gh-pages 分支,除非将分支添加到安全列表。 有关详细信息,请参阅 Travis CI 上的“自定义生成”或 CI 服务的文档。

注意: 对站点的更改在推送到 GitHub 后,最长可能需要 10 分钟才会发布。

如果 Jekyll 尝试构建站点但遇到错误,你将收到一条构建错误消息。

有关排查生成错误的详细信息,请参阅“排查 GitHub Pages 站点的 Jekyll 生成错误”。

查看 GitHub Actions 的 Jekyll 构建错误消息

默认情况下,除非已将 GitHub Pages 网站配置为使用其他 CI 工具,否则 GitHub Pages 网站使用 GitHub Actions 工作流程运行构建和部署。 要查找潜在的构建错误,您可以通过查看仓库的工作流程运行来检查 GitHub Pages 站点的工作流程运行情况。 有关详细信息,请参阅“查看工作流运行历史记录”。 有关如何在出现错误时重新运行工作流的详细信息,请参阅“重新运行工作流和作业”。

在本地查看 Jekyll 构建错误消息

我们建议在本地测试您的站点,这样您可以在命令行上看到构建错误消息,并在更改推送到 GitHub 之前解决任何构建失败。 有关详细信息,请参阅“使用 Jekyll 在本地测试 GitHub Pages 站点”。

在拉取请求中查看 Jekyll 构建错误消息

如果从分支发布,当创建拉取请求来更新 GitHub 上的发布源时,拉取请求的“检查”选项卡上会显示生成错误消息。 有关详细信息,请参阅“关于状态检查”。

如果使用自定义 GitHub Actions 工作流进行发布,以在拉取请求中查看生成错误消息,则必须将工作流配置为在 pull_request 触发器上运行。 执行此操作时,如果工作流已由 pull_request 事件触发,则建议跳过所有部署步骤。 这样,无需将拉取请求中的更改部署到站点即可查看所有生成错误。 有关详细信息,请参阅“触发工作流的事件”和“表达式”。

通过电子邮件查看 Jekyll 构建错误

如果从分支发布,当将更改推送到 GitHub 上的发布源时,GitHub Pages 将尝试生成站点。 如果构建失败,您将在您的主要电子邮件地址收到一封电子邮件。

如果使用自定义 GitHub Actions 工作流进行发布,以在拉取请求中接收有关生成错误的电子邮件,则必须将工作流配置为在 pull_request 触发器上运行。 执行此操作时,如果工作流已由 pull_request 事件触发,则建议跳过所有部署步骤。 这样,无需将拉取请求中的更改部署到站点即可查看所有生成错误。 有关详细信息,请参阅“触发工作流的事件”和“表达式”。

使用第三方 CI 服务查看拉取请求中的 Jekyll 构建错误消息

可以将第三方服务(如 Travis CI)配置为在每次提交后显示错误消息。

  1. 如果尚未在发布源的根目录中添加名为 Gemfile 的文件并包含以下内容:

    source `https://rubygems.org`
    gem `github-pages`
    
  2. 为您选择的测试服务配置站点仓库。 例如,使用 Travis CI 在发布源的根目录中添加名为 .travis.yml 的文件并包含以下内容:

    language: ruby
    rvm:
      - 2.3
    script: "bundle exec jekyll build"
    
  3. 您可能需要使用第三方测试服务激活仓库。 更多信息请参阅测试服务的文档。