LoginSignup
7
5

More than 5 years have passed since last update.

Hugoで日本語URLが404になってしまう問題のとりあえずの解決方法

Posted at

Mac上で静的サイトジェネレーターのHugoを使って日本語のファイル名のマークダウンからHTMLを生成したときに、パーマリンクのエンコーディングがうまくいきません。

例:

$ hugo new test_site // プロジェクトの生成
$ cd test_site
$ hugo new post/ダミー.md
$ vi content/post/ダミー.md // draft = trueを削除
$ hugo // HTML生成

すると、以下のようなファイルが生成されます

public/sitemap.xml

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>
    <loc>http://replace-this-with-your-hugo-site.com/</loc>
    <lastmod>2016-03-06T19:03:05+09:00</lastmod>
    <priority>0</priority>
  </url>

  <url>
    <loc>http://replace-this-with-your-hugo-site.com/post/%E3%82%BF%E3%82%99%E3%83%9F%E3%83%BC/</loc>
    <lastmod>2016-03-06T19:03:05+09:00</lastmod>
  </url>

</urlset>

ここで問題なのが%E3%82%BF%E3%82%99%E3%83%9F%E3%83%BCです。このサイトでURLのエンコードをしてみると、タ†ミーとなってしまいます。

この原因は、Hugoがパーマリンクを生成する際、デフォルトではcontent/以下のファイル構成をそのまま使うことです。このときのエンコーディングが使っているファイルシステムに依存しているため、Macの場合、濁音問題が起きてしまいます。

とりあえずの回避方法として、以下のようにパーマリンクをファイル名ではなく、記事タイトルから生成するように設定すれば、ファイルの本文自体はUTF-8なので、ちゃんとUTF-8でURLエンコードされるようになります。(その他の命名規則についてはこちら

config.toml
[permalinks]
  post= "/:section/:title"

どなたか直接的な解決方法をご存知でしたら教えてください。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5