Github Pages 是面向用户、组织和项目开放的公共静态页面搭建托管服 务,站点可以被免费托管在 Github 上,你可以选择使用 Github Pages 默 认提供的域名 github.io 或者自定义域名来发布站点。Github Pages 支持 自动利用 Jekyll 生成站点,也同样支持纯 HTML 文档,将你的 Jekyll 站 点托管在 Github Pages 上是一个不错的选择。

还没用过 Github Pages 制作网站?通过 Jonathan McGlone 写的这篇奇妙的指南来创建和运行 Github Pages 这篇指南将告诉你关于 Git, GitHub 和 Jekyll 的相关知识,来建立一个属于你自己的站点。

项目站点的网址结构

你最好在将 Jekyll 站点提交到 gh-pages 之前先预览一下。因为 Github 上项目站点的子目录结构会使站点的网址结构变得复杂。为了正确构建站点,你的链接应该是这样的形式:site.github.url

  1. ``` html
  2. {% raw %}
  3. <!-- 用于静态名称的样式表... -->
  4. <link href="{{ site.github.url }}/path/to/css.css" rel="stylesheet">
  5. <!-- 用于动态URL的文档、页面... -->
  6. <a href="{{ page.url | prepend: site.github.url }}">{{ page.title }}</a>
  7. {% endraw %}
  1. 用这种方法你就可以在本地从根地址预览站点,而在 Github 上以
  2. `gh-pages` 分支生成站点的时候能以 `/project-name` 为根地址并且正确地
  3. 显示。
  4. ## 将 Jekyll 部署到 Github Pages 上
  5. Github Pages 依靠 Github 上项目的某些特定分支来工作。Github Pages
  6. 分为两种基本类型:用户/组织的站点和项目的站点。搭建这两种类型站
  7. 点的方法除了一些小细节之外基本一致。
  8. <div class="note protip">
  9. <h5>使用 <code>github-pages</code> gem包</h5>
  10. <p>
  11. 我们在Github的朋友提供了
  12. <a href="https://github.com/github/pages-gem">github-pages</a>
  13. gem包来管理Jekyll和其在Github Pages上的依赖。使用这个包可以让你在将网站部署到Github Pages上时,
  14. 不会因为各种不同版本的gem包而导致意外报错。想要在你的项目中使用当前部署版本的gem包,
  15. 在你的 <code>Gemfile</code> 中添加如下内容:
  16. ``` ruby
  17. {% raw %}
  18. source 'https://rubygems.org'
  19. require 'json'
  20. require 'open-uri'
  21. versions = JSON.parse(open('https://pages.github.com/versions.json').read)
  22. gem 'github-pages', versions['github-pages']
  23. {% endraw %}
  1. 这回保证你再运行 <code>bundle install</code> 命令时,
  2. 你能够安装正确版本的 <code>github-pages</code> gem包。
  3. 如果执行失败,将上述内容简化为:
  1. {% raw %}
  2. source 'https://rubygems.org'
  3. gem 'github-pages'
  4. {% endraw %}
  1. 不过你要经常执行 <code>bundle update</code> 命令哦~~
  2. 如果你想要在 Windows 上安装 <code>pages-gem</code> ,你可以参考 Jens Willmer 的这篇博文 <a href="http://jwillmer.de/blog/tutorial/how-to-install-jekyll-and-pages-gem-on-windows-10-x46#github-pages-and-plugins">how to install github-pages gem on Windows (x64)</a>。

在Windows上安装 github-pages gem包

尽管官方并不支持 Windows 系统,但还是可以在 Windows 系统上安装 github-pages滴! 可以在我们提供的 Windows-specific docs page 中找到一些参考。

抛弃繁琐的 usename.github.io 仓库名称 -译者注

上面讲到的是采用 CNAME 方式绑定域名, 这种方式就需要将仓库命名成 usename.github.io 了。

但若是使用 A记录 方式绑定域名, 仓库的名称就可随意操作, 不需要这样命名了! 你只需要在域名服务商那里将原来的记录的类型改为A记录,再填写GitHub Pages的存放IP 151.101.73.147 即可。 其它全部不用动! 而且你可以搭建多个站点,CNAME像平时一样写就好了!

但是这里有个bug: 当你建立好这个站点并push上去后, 你会得到一封warning的邮件, 大致内容就是这个域名不是用CNAME绑定的而是用A记录绑定的。 但是没有关系,照用!

### 用户和组织的站点 用户和组织的站点被放置在一个特殊的专用仓库中,在该仓库中只存在 Github Pages 的相关文件。这个仓库应该根据用户/组织的名称来命名, 例如: @mojombo 的用户站点仓库 应该被命名为 mojombo.github.io 。 仓库中master分支里的文件将会被用来生成 Github Pages 站点,所以请 确保你的文件储存在该分支上。
自定义域名不影响仓库命名

Github Pages 初始被设置部署在 username.github.io 子域名上, 这就是为什么 即使你使用自定义域名仓库还需要这样命名。

项目的站点

不同于用户和组织的站点,项目的站点文件存放在项目本身仓库的 gh-pages 分支中。该分支下的文件将会被 Jekyll 处理,生成的站点会被 部署到你的用户站点的子目录上,例如 username.github.io/project (除 非指定了一个自定义的域名)。

Jekyll 项目本身就是一个很好的例子,Jekyll 项目的代码存放在 master 分支 , 而 Jekyll 的项目站点(就是你现在看见的网页)包含在同一仓库的 gh-pages 分支 中。

源文件必须在根目录

GitHub Pages 重载“Site Source” 配置的默认值,所以如果你将文件放在除了根目录之外的任何位置,都可能导致网站不能正确构建。

GitHub Pages 文档,帮助和支持

关于 Github Pages 用法的更多相关信息,以及相关问题处理,你可以查看 GitHub’s Pages 帮助 section. 如果找不到相关内容,你可以联系 GitHub Support.