nuxt generateで作っているこのブログ。

GoogleAnalyticsを眺めていると、同じページがURL末のスラッシュの有無で別扱いになっている。

  1. /post/sample-post
  2. /post/sample-post/

これはSEO的にもマズそうなので、スラッシュ無しに統一することにした。

subFoldersの設定を変える

最終的にやったことはsubFoldersをfalseにしただけ。

generate プロパティ:subFolders

デフォルトではtrue

デフォルトではtrueになっていて、そのままnuxt generateしていたため次のようになっていた。

-| dist/
---| index.html
---| post/
-----| sample-post1/
-------| index.html
-----| sample-post2/
-------| index.html

記事が増えるごとにsample-postディレクトリと同様の記事ディレクトリと、その下にindex.htmlが生成される。

その結果、
/post/sample-post1
へのアクセスは
/post/sample-post1/index.html
へのアクセスということとなり、
/post/sample-post1/
とURL末にスラッシュがつくことになる。

falseを指定した場合

false を設定した場合、ルーティングパスに従う形で HTML ファイルを生成します:

とのことなので、nuxt.config.jsでsubFoldersをfalseに設定する。

export default {
  generate: {
    subFolders: false
  }
}

これでgenerateしてみると「記事ディレクトリ+index.html」だったのが、「記事.html」だけになった。

-| dist/
---| index.html
---| post/
-----| sample-post1.html
-----| sample-post2.html

結果、余計なURL末のスラッシュも無くなり、URLを統一することができた。