原因がわかるまで大変でした。

このサイトも最初はポチポチ手打ちでhtmlタグを打っていたのですが、もう時代は令和。wordpressを使うほどでもないので、静的サイトジェネレーターのhugoを使うことにしました。

Githubからhugoをzipでダウンロード。解凍してパスを通せばwindows10で使えるようになりました。ちなみにGithubが何かイマイチ理解できていないくらい素人です。

contentの下に置いた各種記事も固定ページもすんなりビルドできましたが、問題発生。layoutの下に404.htmlテンプレートがあるにも関わらず、404エラーページがビルドできません。

検索しても情報がつかめなかったものの、hugo serverの-vオプションを使うと、返してくれる情報が増えるらしいので-vオプションを付けてビルド。すると出てきたメッセージがこちら。

found no layout file for "HTML" for "404": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

まあだいたい内容は想像できましたが、一応Google翻訳にかけると、

「404」の「HTML」のレイアウトファイルが見つかりませんでした:この組み合わせのHugo Layouts Lookup Rulesに一致するテンプレートファイルを作成する必要があります。

いやいや、ありますよ。テンプレートファイル。仮想じゃなくて、実体アリ。ファイル名の綴りが違うとか?ディレクトリが違うとか?中身はhugo公式のサンプルをまるっとコピペしたので問題ないはず。

再度検索にかけると、海外のhugoのフォーラムみたいなところがひっかかって、「hugoのバグで404ページがビルドできない」と言ってる人発見。hugoのバージョンは、まさしく私の使ってたバージョン。

「バグの修正は完了している」と書かれていたので、Githubに見に行ってみたらhugoの最新バージョンが出てました。

そこで最新バージョンのzipをダウンロード。解凍して、旧バージョンを置いていたフォルダに、新バージョンを置き換え。

正確にはバージョンアップ後に他の不具合が出たらまずいので、旧hugoを置いていたディレクトリ名をoldに変えて、新hugoのディレクトリ名をHugoにしておきました。

hugo version コマンドで、hugoのバージョンが新バージョンになっていたらOK。

さっそくビルドしてみたら、今度こそさくっと404エラーページがビルドできました。やれやれ。

404エラーページなんて、そう何度も触るもんじゃなし、hugoは短期間にバージョンアップを繰り返しているので、こんなバグ情報なんて流れてこないのですね。

まあここらへんが、wordpressとかとは違う点ですね。今回はなんとか解決できてよかったです。