Astro 7以降でconflicts with higher priority routeエラーが発生する原因
Astroでドキュメントを作成するを書いたが、Astro 5+Starlight 0.35の頃は、Content Collectionで管理するファイルを静的ページとして生成するとき以下のような記述が必要だったと記憶している。
export async function getStaticPaths() { const posts = await getCollection('docs'); return posts.map(post => ({ params: { slug: post.id, }, props: post, }));}実際 lufia/todos リポジトリではそのように書いていたのだが、Astro 7+Starlight 0.41ではこれをビルドしたとき以下のような警告が出力されるようになっていた。
[WARN] [build] Could not render `/2026/06/2026-06-25` from route `/[...slug]` as it conflicts with higher priority route `/[...slug]`.どうやら content.config.ts で記述した loader によってファイルのリストが取得されているようで、これで生成したファイルと getStaticPaths でビルドしようとしているファイルの出力が重複しているので「どちらか片方しか有効になりません」という警告らしい。
というのも、上記のコードで取得している posts 自体は重複していないし、getStaticPaths でからの配列を返してもコンテンツ自体はビルドされているので、そうなんだろうと推測しているけれど、実際のところは分からない。