GitHub Pages

GitHub Pages 是面向用户、组织和存储库的公共网页,它们免费托管在 GitHub 的 github.io 域或你选择的自定义域名上。GitHub Pages 在幕后由 Jekyll 提供支持,因此它们是免费托管你的 Jekyll 网站的绝佳方式。

当你推送源文件时,你的网站会自动由 GitHub Pages 生成。请注意,GitHub Pages 对常规 HTML 内容同样适用,原因很简单,因为 Jekyll 将没有前端信息的文件视为静态资源。因此,如果你只需要推送生成的 HTML,你就可以在不进行任何进一步设置的情况下开始使用了。

GitHub Pages 文档 内容全面,其中包括 使用 Jekyll 设置 GitHub Pages 网站的指南。我们建议遵循此指南。

此页面包含一些其他信息,在使用 Jekyll 处理 GitHub Pages 网站时可能有用。

GitHub Pages 文档、帮助和支持

有关你可以使用 GitHub Pages 做些什么的更多信息,以及故障排除指南,你应该查看 GitHub 的 Pages 帮助部分。如果所有方法都失败,你应该联系 GitHub 支持

项目页面 URL 结构

有时,在你将 gh-pages 分支推送到 GitHub 之前预览 Jekyll 网站会很好。GitHub 为项目页面使用的子目录式 URL 结构使 URL 的正确解析变得复杂。为了确保你的网站正确构建,请使用便捷的 URL 过滤器

<!-- For styles with static names... -->
<link href="{{ 'assets/css/style.css' | relative_url }}" rel="stylesheet">
<!-- For documents/pages whose URLs can change... -->
[{{ page.title }}]("{{ page.url | relative_url }}")

这样,你就可以从 localhost 上的网站根目录本地预览你的网站,但是当 GitHub 从 gh-pages 分支生成你的页面时,所有 URL 都将正确解析。

在 GitHub Pages 上部署 Jekyll

GitHub Pages 通过查看 GitHub 上存储库的特定分支来工作。有两种基本类型可用:用户/组织和项目页面。部署这两种类型的网站的方法几乎相同,除了几个小细节。

用户和组织页面

用户和组织页面位于一个专门用于 GitHub Pages 文件的特殊 GitHub 存储库中。此存储库必须以帐户名称命名。例如,@mojombo 的用户页面存储库的名称为 mojombo.github.io

存储库的 master 分支中的内容将用于构建和发布 GitHub Pages 网站,因此请确保你的 Jekyll 网站存储在那里。

自定义域不会影响存储库名称

GitHub Pages 最初配置为位于 username.github.io 子域下,这就是为什么必须以这种方式命名存储库的原因,即使正在使用自定义域

项目页面

与用户和组织页面不同,项目页面与它们所在的项目保存在同一存储库中,不同之处在于网站内容存储在专门命名的 gh-pages 分支中或 master 分支上的 docs 文件夹中。内容将使用 Jekyll 呈现,输出将可在你的用户页面子域的子路径下获得,例如 username.github.io/project(除非指定了自定义域)。

Jekyll 项目存储库本身就是此分支结构的一个完美示例——master 分支包含 Jekyll 的实际软件项目,而你正在查看的 Jekyll 网站包含在 同一存储库的 docs 文件夹中。

请参阅 GitHub 官方文档,了解用户、组织和项目页面,以查看更详细的示例。

源文件必须位于根目录中

GitHub Pages 覆盖 “站点源”配置值,因此如果你将文件放在根目录以外的任何位置,你的网站可能无法正确构建。

在 Windows 上安装 github-pages gem

虽然 Windows 没有得到官方支持,但可以在 Windows 上安装 github-pages gem。可以在我们的 Windows 专用文档页面 上找到特殊说明。

本地运行和测试

一旦项目配置了 github-pages 环境,就很难在本地设置和生产级设置之间进行切换。为此,我们可以使用某些 CLI 选项,让工作流程更轻松。

bundle exec jekyll serve --baseurl=""

这将在你的本地机器上运行 jekyll 服务器,即 http://localhost:4000。有关可用选项,请参阅 服务器选项