astroのi18nルーティング使用時のindexファイルパスについて
目次
astroのi18nルーティング使用時のindexファイルパスについて
astroのi18nで複数言語仕様にしたあと、npx astro devをしたとき、index.htmlのみファイル名変更・ルートディレクトリに移動される。
npx astro buildは通常通り、/en/index.htmlになっている。
src/pages/en/index.htmlのように作ったファイルは、./en.htmlとなる。
astroのi18nで複数言語仕様にする場合、indexページは扱いが特殊で、言語別ディレクトリではなくルートディレクトリに全て生成される。
そのため、言語ディレクトリ内のindex.htmlを指定してもリンクが動作しない。
❌️
<a href={getRelativeLocaleUrl('en', 'index.html')}>index</a>
<a href={getRelativeLocaleUrl('en', './')}>./</a>
⭕
<a href={getRelativeLocaleUrl('ja', 'en.html')}>en.html</a>
要約すると、devでプレビューするときだけ/en/index.htmlは/en.htmlに変換される。
言語ディレクトリの名前がついたhtmlが、ルートディレクトリに生成されるので、それを指定する。
パス指定はデフォルト言語にする。この例ではja