HugoのbaseURLを2個設定したくなった件について

目次

背景

このブログで使用している静的サイトジェネレーターである Hugo にはブログを公開するときに使用する URLについて設定する項目があります。それがbaseURLというパラメーターなのですが、諸事情あって2個 設定したくなりました。しかし、パラメーターは1個しかありません。完全に詰みです。色々と格闘した結果 なんとか解決することができたのでそれについて書くのが今回の目的です。

baseURLについて

冒頭にも書きましたが改めて説明すると、ブログを公開するときに使用するURLです。 このブログだと https://blog.kusshie.com にあたります。 通常これは config.toml というファイルにあるbaseURLパラメーターに設定します。

config.toml

baseURL = "https://blog.kusshie.com"
languageCode = "ja"
title = 'トルコラルラリラ'
theme = "jeffprod"

[permalinks]
    post = "/:year/:filename"

[taxonomies]
    tag = "tags"
    archive = "archives"

見られてまずいものはないと思うので現状の設定を貼り付けましたがこんな感じです。 おおよそどんなものなのかご理解頂けたかなと思います。

私のブログ環境について

baseurlを2個設定したいという時点でコイツ何言ってるんだ?と思う方が大半だと思うので、 私のブログ執筆環境がどうなっているのかをご紹介します。

本番環境と執筆用環境がある

本番環境というのは https://blog.kusshie.com のことです。対する執筆用環境は https://blog-internal.kusshie.com で私の家の中から しかアクセスできない環境となります。自宅のWin鯖に建ってるDNSサーバーにしかレコードを登録していないのでWAN側からはアクセスできません。逆に言えばこの程度のこと しかしていないのでツヨツヨな人ががんばれ見れるかもしれませんが不正アクセスとなります。いきなり本番環境に書きこむのは大変治安が悪い行為なので執筆用環境で 確認しながら完成したらビルドして公開用Webサーバーにファイルを一式配置しています。執筆用環境についてですが、こちらはhugoのビルトインサーバーを利用しています。

ドメインが2個ある

もうお気づきかと思いますが、ドメインが2個あります。本番環境と執筆用環境です。 どちらか片方だけ設定してもいいのですが、アンカータグのリンクがbaseURLに基づいているためトップページ以外に移ろうとした際に挙動がおかしくなってしまいます。

解決策

解決策はhugoのビルトインサーバーにありました。 ビルトインサーバーは以下のコマンドで実行できます。

$ hugo server

サーバーの起動コマンドにはオプションがあり、baseURLを指定することができるようになっています。 ちゃんと調べたわけではないのですが、挙動をみる限りではconfig.tomlでbaseURLが設定されていても オプションでbaseURLが設定されていればオプションで上書きするようになっています。 したがって、以下のようなコマンドを実行すると解決します。

$ hugo server -b="https://blog-internal.kusshie.com"

他のオプションも指定していますが、今回の目的はこれで達成できます。

最後まで読んで頂きありがとうございました。




Archives

2022 (6)
2021 (3)
2020 (4)

Writer

筆者のイメージ画像
kusshie

情報系学部に所属していた社会人1年生です。大学ではネットワークを学んでいましたがまだまだです。 最近は友達に誘われてISPごっこに足を踏み入れました (AS63791)。