Skip to main content

常にいまいち

Hugoのsitemap.xmlがlocを相対パスで出力してた

問題

表題の通り。 相対パスで出力されてたのでsitemap.xmlとして不正な状態だった。

結論

  • baseURLが”/“になってた
    • これを修正すればsitemap.xmlにも反映された

説明

まず疑ったのはsitemap.xmlのテンプレートがおかしいのでは? という線。 sitemap.xmlは特にテンプレートを設定せずにおいても出力されるが、 これを自分で明示的に設定した。

配置場所は layout/_default/sitemap.xml で内容はデフォルトのものをコピペした。 詳細は https://gohugo.io/templates/sitemap-template/#sitemap-templates こちらを参照。

これでは改善しなかったので、absURLを使って <loc>{{ .Permalink | absURL }}</loc> こんな感じで明示的に修正してみた。 使い方の詳細は https://gohugo.io/functions/absurl/#readout こちらを参照。

これでも直らなかったのでそもそもbaseURLおかしいのでは? と思い、config.tomlを参照したら "/" こうなってしまっていたので、これを修正するとlocが絶対パスになった。 設定の詳細は https://gohugo.io/getting-started/configuration/#all-configuration-settings この辺参照。