Next.js App Router で src/app にファイルが存在するのに not found
に公開背景
あるタイミングで全ページが表示されず、 not found ページが表示されるようになった。
原因
ディレクトリ構造としてルートは以下にsrcディレクトリを配置するパターンを採用していた。
shadcn/ui の初期化の時に選択ミスで app ディレクトリが作成されて不要ファイルは削除したものの、ディレクトリが残ってしまっていた。
nextjs ではルートに appディレクトリがある場合、 app ディレクトリが優先されてsrc/appは無視される。app ディレクトリ内は空だったので not found となってしまっていた。
解決
app ディレクトリを削除する。
補足
Pages Router の場合も同じくルートに pages があると src/pagesは無視される。