codecamp

关于 GitHub Pages

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

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

关于 GitHub Pages

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

您可以在 GitHub 的 github.io 域或自己的自定义域上托管站点。 更多信息请参阅“对 GitHub Pages 使用自定义域”。

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

GitHub Pages 站点的类型

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

要发布用户站点,必须创建名为 <user>.github.io 的用户帐户所拥有的仓库。 要发布组织站点,必须创建名为 <organization>.github.io 的组织所拥有的仓库。 除非您使用自定义域,否则用户和组织站点位于 http(s)://<username>.github.iohttp(s)://<organization>.github.io

项目站点的源文件与其项目存储在同一个仓库中。 除非您使用自定义域,否则项目站点位于 http(s)://<user>.github.io/<repository>http(s)://<organization>.github.io/<repository>

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

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

注:使用旧版 <user&.github.com 命名方案的仓库仍将发布,但访问者将从 http(s)://<username&.github.com 重定向到 http(s)://<username&.github.io。 如果 <user&.github.com<user&.github.io 仓库均存在,将仅发布 <user&.github.io 仓库。

GitHub Pages 站点的发布来源

GitHub Pages网站的发布源是存储网站源文件的分支和文件夹。

警告:GitHub Pages则站点将成为互联网上的公开内容,即使其仓库是私有的或内部的。 如果站点的仓库中有敏感数据,您可能想要在发布前删除它。 更多信息请参阅“关于仓库可见性”。

用户和组织站点的默认发布源是存储库的默认分支的根。项目站点的默认发布源是gh-pages分支的根。如果您的存储库中存在默认发布源,则GitHub Pages将自动从该源发布网站。

如果要将站点的源文件保留在其他位置,则可以更改站点的发布源。您可以从存储库中任何分支发布站点,可以从该分支上存储库的根目录发布,也可以从该分支上//docs文件夹发布。更多信息请参见“ 配置GitHub Pages站点的发布来源”。

如果选择任何分支的/docs 文件夹作为发布源,则GitHub Pages将从/docs文件夹中读取所有内容以发布网站,包括 CNAME文件。 例如,当您通过GitHub Pages设置编辑自定义域时,该自定义域将写入 /docs/CNAME。有关 CNAME 文件的更多信息,请参阅“管理 GitHub Pages 站点的自定义域”。

静态站点生成器

GitHub Pages 会发布您推送到仓库的任何静态文件。 您可以创建自己的静态文件或使用静态站点生成器为您构建站点。 您还可以在本地或其他服务器上自定义自己的构建过程。 我们建议使用 Jekyll,它是一个静态站点生成器,内置 GitHub Pages 支持和简化的构建流程。 更多信息请参阅“关于 GitHub Pages 和 Jekyll”。

默认情况下,GitHub Pages 将使用 Jekyll 来构建您的站点。 如果您想使用除 Jekyll 以外的静态站点生成器,通过在发布来源的根目录中创建一个名为 .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 站点不应该用于敏感事务,例如发送密码或信用卡号码。
  • 您对 GitHub Pages 的使用受 GitHub 服务条款的约束,包括禁止转售。

使用限制

GitHub Pages 站点受到以下使用限制的约束:

  • GitHub Pages 源仓库建议的限制为 1GB。更多信息请参阅“我的磁盘配额是多少?
  • 发布的 GitHub Pages 站点不得超过 1 GB。
  • GitHub Pages 站点的带宽限制为每月 100GB。
  • GitHub Pages 站点的限制为每小时 10 次构建。

如果您的站点超出这些使用配额,我们可能无法为您的站点提供服务;或者您可能收到来自 GitHub 支持GitHub 高级支持 的礼貌电子邮件,建议降低站点对服务器影响的策略,包括将第三方内容分发网络 (CDN) 置于您的站点前,利用其他 GitHub 功能(如发行版)或转用可能更符合您需求的其他托管服务。

禁止使用

GitHub Pages 并非旨在用于或允许用作免费的 Web 托管服务来运行您的在线业务、电子商务站点或主要针对促进商业交易或提供商业软件即服务 (SaaS) 的任何其他网站。

此外,GitHub Pages 站点必须避免:

  • 非法或者我们的服务条款社区指导方针禁止的内容或活动
  • 暴力或有威胁的内容或活动
  • 过多的自动批量活动(例如,垃圾邮件)
  • 危害 GitHub 用户或 GitHub 服务的活动
  • 快速致富计划
  • 性淫秽内容
  • 歪曲您的身份或站点目的的内容

如果您对用途或预期用途是否归入这些类别有疑问,请联系 GitHub 支持GitHub 高级支持

GitHub Pages 上的 MIME 类型

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

虽然无法基于每个文件或每个仓库指定自定义 MIME 类型,但您可以添加或修改 MIME 类型以在 GitHub Pages 上使用。 更多信息请参阅 mime-db 参与指南

延伸阅读

GitHub Pages
创建 GitHub Pages 站点
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GitHub 身份验证

在 GitHub 上管理订阅和通知

在 GitHub 上管理活动的订阅

GitHub 组织和团队

GitHub 管理对组织仓库的 Git 访问

GitHub 计费和付款

GitHub 使用议题和拉取请求进行协作

GitHub 在具有代码质量功能的仓库上进行协作

管理在 GitHub 上的工作

GitHub 建立强大的社区

GitHub 管理仓库

GitHub 自定义 GitHub 工作流程

在 GitHub Marketplace 中购买并安装应用程序

通过 GitHub Jobs 寻找人才

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }