跳到主要内容

关于 GitHub Pages

您可以使用 GitHub Pages 直接从 GitHub 上的存储库托管关于您自己、您的组织或您的项目的网站。

谁可以使用此功能?

GitHub Pages 可用于具有 GitHub Free 和 GitHub Free for organizations 的公共存储库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有存储库。有关更多信息,请参阅“GitHub 的套餐”。

GitHub Pages 现在使用 GitHub Actions 来执行 Jekyll 构建。当使用分支作为构建的来源时,如果您想使用内置的 Jekyll 工作流,则必须在您的存储库中启用 GitHub Actions。或者,如果 GitHub Actions 不可用或已禁用,则将.nojekyll文件添加到源分支的根目录将绕过 Jekyll 构建过程并直接部署内容。有关启用 GitHub Actions 的更多信息,请参阅“管理存储库的 GitHub Actions 设置”。

关于 GitHub Pages

GitHub Pages 是一款静态站点托管服务,它直接从 GitHub 上的存储库获取 HTML、CSS 和 JavaScript 文件,可以选择通过构建过程运行这些文件,然后发布网站。您可以在GitHub Pages 示例集合中查看 GitHub Pages 站点的示例。

您可以将您的站点托管在 GitHub 的github.io域名或您自己的自定义域名上。有关更多信息,请参阅“为您的 GitHub Pages 站点配置自定义域名”。

您可以创建可公开访问的互联网上的 GitHub Pages 站点。使用 GitHub Enterprise Cloud 的组织也可以通过管理站点的访问控制来私下发布站点。有关更多信息,请参阅 GitHub Enterprise Cloud 文档中的“更改 GitHub Pages 站点的可见性”。

要开始使用,请参阅“创建 GitHub Pages 站点”。

组织所有者可以禁用从组织的存储库发布 GitHub Pages 站点。有关更多信息,请参阅“管理组织的 GitHub Pages 站点的发布”。

GitHub Pages 站点的类型

GitHub Pages 站点有三种类型:项目、用户和组织。项目站点连接到 GitHub 上托管的特定项目,例如 JavaScript 库或食谱集。用户和组织站点连接到 GitHub.com 上的特定帐户。

要发布用户站点,您必须创建一个由您的个人帐户拥有的名为<username>.github.io的存储库。要发布组织站点,您必须创建一个由组织拥有的名为<organization>.github.io的存储库。除非您使用自定义域名,否则用户和组织站点可在http(s)://<username>.github.iohttp(s)://<organization>.github.io访问。

项目站点的源文件存储在其项目的同一存储库中。除非您使用自定义域名,否则项目站点可在http(s)://<username>.github.io/<repository>http(s)://<organization>.github.io/<repository>访问。

有关自定义域名如何影响站点 URL 的更多信息,请参阅“关于自定义域名和 GitHub Pages”。

您每个 GitHub 帐户只能创建一个用户或组织站点。项目站点(无论由组织还是个人帐户拥有)都是无限的。

GitHub Pages 站点的发布源

警告

GitHub Pages 站点可公开访问互联网,即使该站点的存储库是私有的(如果您的计划或组织允许)。如果您的站点存储库中包含敏感数据,您可能需要在发布前删除这些数据。有关更多信息,请参阅“关于存储库”。

您可以在将更改推送到特定分支时发布您的站点,或者您可以编写 GitHub Actions 工作流来发布您的站点。

如果您不需要对站点的构建过程进行任何控制,我们建议您在将更改推送到特定分支时发布您的站点。您可以指定要使用的分支和文件夹作为您的发布源。源分支可以是存储库中的任何分支,源文件夹可以是源分支上的存储库的根目录 (/) 或源分支上的/docs文件夹。每当将更改推送到源分支时,源文件夹中的更改都将发布到您的 GitHub Pages 站点。

如果您想使用 Jekyll 以外的构建过程,或者您不希望使用专用分支来保存已编译的静态文件,我们建议您编写 GitHub Actions 工作流来发布您的站点。GitHub 提供了针对常见发布场景的工作流模板,以帮助您编写工作流。

有关更多信息,请参阅“为您的 GitHub Pages 站点配置发布源”。

静态站点生成器

GitHub Pages 发布您推送到存储库的任何静态文件。您可以创建您自己的静态文件,也可以使用静态站点生成器为您构建站点。您还可以自定义您自己的本地或其他服务器上的构建过程。

如果您使用自定义构建过程或 Jekyll 以外的静态站点生成器,您可以编写 GitHub Actions 来构建和发布您的站点。GitHub 提供了针对多个静态站点生成器的 Workflow 模板。有关更多信息,请参阅“为您的 GitHub Pages 站点配置发布源”。

如果您从源分支发布网站,GitHub Pages 默认会使用 Jekyll 构建您的网站。如果您想使用 Jekyll 以外的静态网站生成器,我们建议您编写 GitHub Actions 来构建和发布您的网站。否则,请在发布源的根目录中创建一个名为.nojekyll的空文件来禁用 Jekyll 构建过程,然后按照静态网站生成器的说明在本地构建您的网站。

GitHub Pages 不支持 PHP、Ruby 或 Python 等服务器端语言。

GitHub Pages 使用限制

2016 年 6 月 15 日之后创建的并使用github.io域的 GitHub Pages 网站通过 HTTPS 提供服务。如果您在 2016 年 6 月 15 日之前创建了您的网站,您可以启用对您网站流量的 HTTPS 支持。更多信息,请参见“使用 HTTPS 保护您的 GitHub Pages 网站”。

禁止用途

GitHub Pages 不适用于也不允许用作免费的网络托管服务来运行您的在线业务、电子商务网站或任何主要用于促进商业交易或提供商业软件即服务 (SaaS) 的其他网站。GitHub Pages 网站不应用于发送密码或信用卡号码等敏感交易。

此外,您对 GitHub Pages 的使用须遵守GitHub 服务条款,包括关于快速致富计划、色情内容以及暴力或威胁性内容或活动的限制。

教育练习

使用 GitHub Pages 创建现有网站的副本作为学习练习并不被禁止。但是,除了遵守GitHub 服务条款之外,您必须自己编写代码,网站不得收集任何用户数据,并且您必须在网站上添加醒目的免责声明,表明该项目与原网站无关,仅用于教育目的。

使用限制

GitHub Pages 网站受以下使用限制:

  • GitHub Pages 源代码库的建议限制为 1 GB。更多信息,请参见“关于 GitHub 上的大文件”。

  • 已发布的 GitHub Pages 网站大小不得超过 1 GB。

  • 如果 GitHub Pages 部署花费的时间超过 10 分钟,则会超时。

  • GitHub Pages 网站每月带宽限制为 100 GB(软限制)。

  • GitHub Pages 网站每小时构建次数的软限制为 10 次。如果您使用自定义 GitHub Actions 工作流构建和发布您的网站,则此限制不适用。

  • 为了为所有 GitHub Pages 网站提供一致的服务质量,可能会应用速率限制。这些速率限制并非旨在干扰 GitHub Pages 的合法使用。如果您的请求触发速率限制,您将收到包含 HTTP 状态代码429的相应响应,以及包含信息的 HTML 主体。

如果您的网站超过这些使用配额,我们可能无法提供您的网站服务,或者您可能会收到 GitHub 支持团队发来的礼貌电子邮件,建议您采取策略来减少您的网站对我们服务器的影响,包括在您的网站前面放置第三方内容分发网络 (CDN)、使用 GitHub 的其他功能(例如版本发布)或迁移到可能更适合您需求的其他托管服务。

GitHub Pages 上的 MIME 类型

MIME 类型是服务器发送到浏览器的标头,提供有关浏览器请求的文件的性质和格式的信息。GitHub Pages 支持超过 750 种 MIME 类型,涵盖数千种文件扩展名。支持的 MIME 类型列表是从mime-db 项目生成的。

虽然您不能按文件或存储库为基础指定自定义 MIME 类型,但您可以添加或修改 MIME 类型以在 GitHub Pages 上使用。更多信息,请参见mime-db 贡献指南

数据收集

访问 GitHub Pages 网站时,无论访问者是否登录 GitHub,都会出于安全目的记录和存储访问者的 IP 地址。有关 GitHub 安全实践的更多信息,请参见GitHub 隐私声明

进一步阅读