Top > Programming > Environment > GitHub > GitHub Pages
Last-modified: Sun, 04 May 2014 04:44:12 HAST
Counter:2272 Today:1 Yesterday:1 Online:1
このエントリーをはてなブックマークに追加

GitHub Pages

GitHub Pages の種類

GitHub Pages には大きく3種類あります。正式な名称は兎も角次の3つです。

  1. Organization pages
  2. User pages
  3. Project pages (Repository pages)

Organization page

Organization 毎に作れるページです。"org" という名前の Organization があるとき、"org.github.com" というリポジトリを作ると、そのマスターブランチの中身が GitHub Pages として公開されるようになります。アドレスは、"http://org.github.com" になります。

User page

User 毎に作れるページです。本質的には、Organization と同じです。 Jekyll を利用してブログを構築しているユーザが多いようです。アカウント名が "user" のとき、 "user.github.com" というリポジトリを作ると、そのマスターブランチの中身が GitHub Pages として公開されるようになります。アドレスは、"http://user.github.com" になります。

Project page / Repository page

リポジトリ毎に作れるページです。リポジトリに追加されたブランチ "gh-pages" の中身が GitHub Pages として公開されるようになります。アカウント名が "user" で、リポジトリ名が "repo" のとき、アドレスは、"http://user.github.com/repo/" になります。

GitHub Pages に独自のドメインを設定する

GitHub Pages には独自ドメインを設定することができます。ここでは設定方法については 解説しませんが、注意する点を示しておきます。公式のドキュメントを読むのが最も良いでしょう。英語のテキストしか用意されていませんが、シンプルにまとめられています。

トップレベルドメインの割り当て

DNSレコードによってトップレベルドメインを割り当てるときには、CNAME を利用できません。 これが最も注意するべき点です。サブドメインであれば CNAME で動作しますが、トップレベルドメインの場合には、A レコードないし、Alias レコードを利用します。

いくつかの Web の資料では、このことについて、すべて同じように CNAME で設定する、と書かれたものが見受けられますが、2014年5月現在、それは誤りです。

各社のサービスが Alias レコードについて対応しているかどうかを確認するのは面倒なので、A レコードで対応するのが無難であると思います。A レコードは公式で設定方法が示されています。次のふたつの アドレスに対して A レコードを設定します。

  • 192.30.252.153
  • 192.30.252.154

例えば、"example.com" に対するアクセスを GitHub Pages に飛ばすときには、この2つのアドレスに対して、A レコードを設定します。"www.example.com" ドメインであれば CNAME が使える(ハズな)のですが、ユーザビリティを考慮して www も登録しておくとのことであれば、こちらも A レコードで "www.exampl.com" に対して、2つのアドレスを設定してしまうのが良いと思います。すぐに GitHub Pages に対して設定したレコードが CNAME と A とで混在することを防げるので。

その他のTips

index.html ページに注意

GitHub は Unix/Linux 系のサーバで動作していますから、大文字と小文字が区別されます。したがって、あるディレクトリの URL にアクセスするときは、index.html 以外は参照されません。Index.html であったり、INDEX.html は参照されないので注意してください。Windows や Max の上では正常に表示され、サーバにアップしたら表示されなくなる、という現象は良く起こりますが、GitHub についても同様です。必ず小文字で index.html としてください。

GitHub の場合になおタチが悪いのは、一度 Index.html としてアップしてしまうと、小文字の index.html をアップしても、GitHub の(リモート)リポジトリ内に残るファイル名は Index.html のままである点です。大文字小文字を無視して上書きされるので、一度該当ファイルを削除するなどの対応が必要になります。