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