Github Pagesの独自ドメイン設定がリセットされる問題
このサイトは、Github Pagesというホスティングサービスを利用して公開しています。
Githubに <account-name>.github.io
という名前のリポジトリを作成して、そこにHTMLファイルを置くだけでWebサイトを公開できるという、お手軽ホスティングサービスなのです。
# 独自ドメイン設定
Github Pagesでは、デフォルトで https://<account-name>.github.io
というURLが割り当てられます。
このブログみたいな個人サイト程度なら、github.io
という響きに技術的な印象もあるのでデフォルトのドメインでも十分かと思うんですが、
せっかく自分のドメインを持ってるならそれを設定したいですよね。
というわけで、公式ページを参考に独自ドメインを設定。 https://www.plus-one.techで公開できました!めでたしめでたし。
...とはならず、この後に重大な問題が出てきてしまいました。
# 記事を更新するとサイト全体が404になる問題
このサイトの制作に使っているCMS、Vuepressは静的サイトジェネレータと呼ばれ、Vueで書いたコードを静的なHTMLファイルとして出力するビルド機能を備えたCMSです。
記事をDBに保存して、アクセスのたびにPHPで出力を行うWordpressなどの従来のCMSとは異なり、静的サイトジェネレータでは純粋なHTMLを扱うため、ビルドしたファイルをgit push
するだけで記事の管理ができ、とりわけGitとの相性がとても良いです。
コマンド一つでビルド→デプロイができ、やり方も公式ドキュメントに書いてあり親切。
公開も無事にできたことなので、記事をアップロードしてみるかとコマンドを打ってみると、なぜかhttps://www.plus-one.techへのアクセスが404になってしまう不具合が発生。
試しに <account-name>.github.io
にアクセスしてみると、そちらでは正常に表示される。
慌てて調べてみると、Github > Settings > Github Pages > Custom domain
の設定が消えてしまっていることがわかりました。
設定をしなおすとページが表示されましたが、またデプロイスクリプトを流すと消えてしまう。これは困った。
# 解決方法
結果から言ってしまうとコピペミスでした。
公式ドキュメントのスクリプトを抜粋すると、13行目のコメントを外し忘れていたことが原因です。
#!/usr/bin/env sh
# abort on errors
set -e
# build
npm run docs:build
# navigate into the build output directory
cd docs/.vuepress/dist
# if you are deploying to a custom domain
# echo 'www.example.com' > CNAME
git init
git add -A
git commit -m 'deploy'
# if you are deploying to https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master
# if you are deploying to https://<USERNAME>.github.io/<REPO>
# git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages
cd -
Github Pagesでは、CNAME
というファイルでカスタムドメインの設定を管理しているようです。
このファイルがソースに含まれていないから、名前解決ができなくなって404エラーだったというわけですね。
みなさんも、どこかからソースを拾ってコピペする場合にはきちんと注釈を読むようにしましょうね。
この記事をシェア