GitHubPagesが404になったときの対処
昨日の日記でHugoのテーマを改修したところ、GitHub Pagesで404エラーが表示されるようになった、と書いた。
原因がわかったので、今後の対策とともにメモしておく。
要約
- GitHub Pagesを利用する際は、CNAMEファイルに気をつけよう。
- Hugoを利用するときには、staticフォルダにCNAMEファイルを入れておこう。
前提
- Hugo Static Site Generator v0.74.3
背景
$ hugo
コマンドを実行すると、WEBサイトが生成されるが、次の問題がある。
- 下書き(draftがtrueになっている)ファイルでもページを生成してしまう。
- 生成したページは元の記事(contentフォルダ内)を削除したり、ディレクトリ構造を変更しても残り続ける。
だから、$ hugo
を実行する前にはゴミとなるファイルをキレイにしておくほうがいい。
今回はゴミとなるファイルがたまってきたので一掃したところ、GitHub Pagesで404エラーが出ることになった。
手順
Hugoのエラーではないことは、ローカルでは意図したとおりに表示されることから、明らかだった。
Hugoのエラーならその場で気づく。
GitHub Pagesの側のエラーであるということがわかった。
- index.htmlを配置しているか
- プッシュしてから5分以上経っているか
- index.htmlを再コミットして再プッシュしたか
- アクセスしているURLは間違えていないか
- ソースリポジトリは1GBを超えていないか
- 月当たり100GBのソフトな帯域幅制限を超えていないか
- 時間当たり10ビルドのソフトな制限を超えていないか
うん。
すべてクリアしているのに、なぜか、表示されない。
ビルドもきちんと成功している。
その証拠に https://{ユーザー名}.github.io/{リポジトリ名}/にアクセスしたら、表示される。
ネームサーバーの問題かとも思ったが、そうでもないようだ。
ここまで来て、CNAMEファイルがないことに気づいた。
公式のページでは、CNAMEファイルにドメインだけ入れろ、と書いてある。
今まで意識していなかったが、公開用のディレクトリを一掃するときに一緒に消してしまっていた。
CNAMEファイルをつくり、1o0.jp
とだけ入力して保存し、プッシュすると無事にアクセスできるようになった。
対策
CNAMEファイルはstaticフォルダに入れておくことにした。
そうすれば$ hugo
のたびに公開用のフォルダにコピーされる。
けっこう焦ったが、今後、アクセスできない時には、原因が同じなら次の二点を押さえたら良いという教訓を得た。
- https://{ユーザー名}.github.io/{リポジトリ名}/で表示されているか。
- CNAMEファイルの有無。