关于 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.io
或 http(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 为多个静态网站生成器提供了入门工作流。有关更多信息,请参阅“为您的 GitHub Pages 网站配置发布源”。
如果您从源分支发布网站,GitHub Pages 默认情况下将使用 Jekyll 来构建您的网站。如果您想使用除 Jekyll 之外的静态网站生成器,我们建议您编写一个 GitHub Actions 来构建和发布您的网站。否则,通过在发布源的根目录中创建一个名为 .nojekyll
的空文件来禁用 Jekyll 构建流程,然后按照您的静态网站生成器的说明在本地构建您的网站。
GitHub Pages 不支持 PHP、Ruby 或 Python 等服务器端语言。
GitHub Pages 使用限制
2016 年 6 月 15 日之后创建的 GitHub Pages 网站,如果使用 github.io
域名,则通过 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 隐私声明。
进一步阅读
- GitHub Pages 在 GitHub Skills 上
- "存储库的 REST API 端点"