关于 GitHub Pages
GitHub Pages 是一项静态站点托管服务,它直接从 GitHub Enterprise Server 上的仓库获取 HTML、CSS 和 JavaScript 文件,(可选)通过构建过程运行文件,然后发布网站。 可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。
若要开始操作,请参阅“创建 GitHub Pages 站点”。
组织所有者可以禁止从组织中的存储库发布 GitHub Pages 站点。 有关详细信息,请参阅“管理组织的 GitHub Pages 站点发布”。
GitHub Pages 站点的类型
有三种类型的 GitHub Pages 站点:项目、用户和组织。 项目站点连接到 GitHub Enterprise Server 上托管的特定项目,例如 JavaScript 库或配方集合。 用户和组织网站已连接到 你的 GitHub Enterprise Server 实例 上的特定帐户。
若要发布用户站点,必须创建名为 <username>.<hostname>
的个人帐户拥有的存储库。 若要发布组织站点,必须创建名为 <organization>.<hostname>
的组织帐户拥有的存储库。
项目站点的源文件与其项目存储在同一个仓库中。
您只能为 GitHub Enterprise Server 上的每个帐户创建一个用户或组织站点。 项目站点(无论是组织还是个人帐户拥有)没有限制。
你的站点可用的 URL 取决于是否为 你的 GitHub Enterprise Server 实例 启用了子域隔离。
站点类型 | 子域隔离已启用 | 子域隔离已禁用 |
---|---|---|
用户 | http(s)://pages.<hostname>/<username> | http(s)://<hostname>/pages/<username> |
组织 | http(s)://pages.<hostname>/<organization> | http(s)://<hostname>/pages/<organization> |
个人帐户拥有的项目站点 | http(s)://pages.<hostname>/<username>/<repository>/ | http(s)://<hostname>/pages/<username>/<repository>/ |
组织帐户拥有的项目站点 | http(s)://pages.<hostname>/<orgname>/<repository>/ | http(s)://<hostname>/pages/<orgname>/<repository>/ |
有关详细信息,请参阅“启用子域隔离”或联系站点管理员。
GitHub Pages 站点的发布来源
警告:如果你的站点管理员启用了公共页面,GitHub Pages 站点将在 Internet 上公开,即使该站点的存储库是私有的或内部的也是如此。 如果站点的存储库中有敏感数据,你可能想要在发布前删除数据。 有关详细信息,请参阅“为企业配置 GitHub Pages”和“关于仓库”。
可以在将更改推送到特定分支时发布站点,也可以编写 GitHub Actions 工作流来发布站点。 若要将 GitHub Actions 用作 GitHub Pages 的发布源,站点管理员必须为 GitHub Enterprise Server 启用 GitHub Actions。 有关详细信息,请参阅“启用 GitHub Actions for GitHub Enterprise Server”。
如果不需要对站点的生成过程进行任何控制,则建议在将更改推送到特定分支时发布站点。 可以指定要用作发布源的分支和文件夹。 源分支可以是存储库中的任何分支,源文件夹可以是源分支上的存储库根目录 (/
),也可以是源分支上的 /docs
文件夹。 将更改推送到源分支时,源文件夹中的更改将发布到 GitHub Pages 站点。
如果想使用 Jekyll 以外的生成过程,或者不想使用专用分支来保存已编译的静态文件,则建议编写 GitHub Actions 工作流来发布站点。 GitHub Enterprise Server 为常见的发布应用场景提供工作流模板,以帮助编写工作流。
有关详细信息,请参阅“配置 GitHub Pages 站点的发布源”。
静态站点生成器
GitHub Pages 会发布您推送到仓库的任何静态文件。 您可以创建自己的静态文件或使用静态站点生成器为您构建站点。 您还可以在本地或其他服务器上自定义自己的构建过程。
如果使用自定义生成过程或 Jekyll 以外的静态站点生成器,可以编写 GitHub Actions 来生成和发布站点。 GitHub Enterprise Server 为多个静态站点生成器提供工作流模板。 有关详细信息,请参阅“配置 GitHub Pages 站点的发布源”。
如果从源分支发布站点,GitHub Pages 将默认使用 Jekyll 生成站点。 如果想使用 Jekyll 以外的静态站点生成器,则建议编写 GitHub Actions 来生成和发布站点。 否则,通过在发布源的根目录中创建一个名为 .nojekyll
的空文件来禁用 Jekyll 生成过程,然后按照静态站点生成器的说明在本地生成站点。
GitHub Pages 不支持服务器端语言,例如 PHP、Ruby 或 Python。
GitHub Pages 使用限制
GitHub Pages 并非旨在用于或允许用作免费的 Web 托管服务来运行你的在线业务、电子商务站点或主要针对促进商业交易或提供商业软件即服务 (SaaS) 的任何其他网站。 GitHub Pages 站点不应该用于敏感事务,例如发送密码或信用卡号码。
此外,你对 GitHub Pages 的使用受 GitHub 服务条款的约束,包括对快速致富计划、淫秽内容以及暴力或威胁性内容或活动的限制。
学习练习
允许使用 GitHub Pages 创建现有网站的副本以进行学习练习。 但除需要遵守 GitHub 服务条款外,必须自行编写代码,网站不得收集任何用户数据,并且网站必须提供明确的免责声明,表明项目与原始项目无关,且仅用于学习目的。
使用限制
GitHub Pages 站点受到以下使用限制的约束:
- GitHub Pages 源存储库的建议限制为 1 GB。
- 发布的 GitHub Pages 站点不得超过 1 GB。
- 如果花费的时间超过 10 分钟,GitHub Pages 部署将超时。
GitHub Pages 上的 MIME 类型
MIME 类型是服务器发送到浏览器的标头,提供有关浏览器所请求文件性质和格式的信息。 GitHub Pages 支持数千种文件扩展名中 750 多种 MIME 类型。 支持的 MIME 类型列表是从 mime-db 项目生成的。
虽然无法基于每个文件或每个仓库指定自定义 MIME 类型,但您可以添加或修改 MIME 类型以在 GitHub Pages 上使用。 有关详细信息,请参阅 mime-db 贡献指南。
延伸阅读
- GitHub Skills 上的 GitHub Pages
- "存储库的 REST API 终结点"