#原因
public以下に同名フォルダやファイルがある(場合がある)。
Laravelでは実在するディレクトリへ優先的にアクセスされるので、
Route::get('/dir/file', function () {
return view('dir.file');
})->name('dir.file');
このようにルーティングしておき、https://domain.com/dir/file
へアクセスするとき、
/public/dir/
というディレクトリが存在していると、
/public/dir/file
という実在するファイルを探しに行ってしまう模様。
当然、file
などという実ファイルは設置していないので404エラーになる。
#解決方法
・public以下の同名フォルダやファイルを削除またはリネームする
・競合しないPATHに変更する
#あとがき
一部のURLだけ404になる場合などは、上記のような原因が多いと思います。
「Laravel 404 route」などで検索しても、次のような原因のものばかりだったので、今回記事にしました。
参考: 【Laravel】ルーティングをしているはずが404エラー?