2019この記事では、Hugoブログをサブディレクトリ以下で構築する為の手順をメモしている。FTPなら簡単にできることだが、Hugo+GitHub+Netlifyでは、ただググるだけではハマッた。config.tomlにpublishDirを設定することによって可能になった。TL,DRこのブログはHugo、Git、GitHub、Netlifyをつかって構築している。ふつうのホームページは、レンタルサーバを借りて、FTPでファイルをアップロードする。自分のサーバースペース一番上の階層index.htmlabout.htmlcontact.html二番目の階層index.htmlaaaaa.htmlbbbbb.htmlccccc.htmlAのサーバースペースBのサーバースペースCのサーバースペースというフォルダ構成で、ホームページをアップロードしたとする。すると、ccccc.htmlのURIは、http://自分.ドメイン/二番目の階層/ccccc.htmlとなる。ところで、ググリ倒してみても、GitでGitHubにPushしたデータをNetlifyがHugoでdeployする近頃の方法(意味不明でしょう)では、http://自分.ドメイン/というURIでのブログは構築できても、http://自分.ドメイン/二番目の階層/以下に展開するような構成にはできないようで、ハマッた。結果的には、うまいこと意図したとおりに表示させることができたので、どういう方法を試してみたのか、どの方法で成功したのかをメモする。目標http://自分.ドメイン/ブログ/というURIで、ブログを構築したい。http://自分.ドメイン/のトップページにHugoは絡ませない。先に結論config.tomlにpublishDirを設定する。publishDirで設定したフォルダをつくる。試行錯誤サブドメインhttp://ブログ.自分.ドメイン/というURIで、ブログを構築すれば、http://自分.ドメイン/のトップページとは別個にブログ記事を管理したい要求は簡単にクリアできる。今回はhttp://自分.ドメイン/以下に記事を蓄積させたかったので却下した。ブログというセクションhttp://自分.ドメイン/をトップページとし、ブログというフォルダ(セクション)をつくって管理しようと思った。次の問題があり、却下した。http://自分.ドメイン/がブログ自体のトップページになってしまう。Hugoの設定上、一番上のセクションだけしかindex.htmlがつくられない。http://自分.ドメイン/ブログ/記事/2019/08/16/diary/という記事があったとする。foundとなってしまう。Hugoの使用上これは仕方がないが、http://自分.ドメイン/ブログ/記事/という階層でもリスト表示させたい。baceURLの設定それでは、config.tomlにbaceURLという設定項目があるから、これにhttp://自分.ドメイン/ブログ/というのを加えたらどうか、と試してみた。うまくいけば、http://自分.ドメイン/ブログ/以下にブログが構築されるはずだ。ためしにhttp://自分.ドメイン/記事/2019/08/16/diary/でアクセスすると、きちんと表示される。ブログ記事内のリンクはhttp://自分.ドメイン/ブログ/記事/2019/08/16/diary/で設定されている。baceURLというのは、生成される記事内のURLの基準となるものであって、それと実際のディレクトリ構成がきちんとつながっていなかったのが原因だとわかった。Hugoを参考に、RelativeURLsとCanonifyURLsをtrueにしたが、あまり関係がなかった。生成される記事の収納場所はpublishDirで設定される。Netlifyでは、publish内のファイルを公開するようにしているから、”publish/ブログ”として設定し、ついでにpublishのrootに適当なindex.htmlを設置した。これでhttp://自分.ドメイン/にアクセスすると、適当なindex.htmlが表示され、http://自分.ドメイン/ブログ/にアクセスすると、ブログのindex.htmlが表示されるようになった。まとめHugo、Git、GitHub、Netlifyという構成はFTPなどとはまるで違う考え方が必要になるようだが、ひとつひとつ試行錯誤をして、その記録を残していきたい。