年明け久しぶりに仕事に戻り、昨年年末に作ったウェブアプリのサンプルをローカル環境(windows10+Homestead)で動かしてみたら、404エラーが出ました!(-_-;)
具体的に、下記の現象になっています:
- /login、/homeなどはアクセスできて、一部のルート404エラーです。
- 404エラーが出たページのルートはちゃんと/routes/web.phpに登録されています。
- /homeのルートをweb.phpからコメントアウトしても、アクセスできます
休み直前大丈夫だったのに!と思いながら、数時間をかけっていろいろ調べてやっとページ表示できるようになりました(´;ω;`)ウゥゥ。
下記のこと試してみて、うまく解決できなかった。
- ngnixの設定確認問題がなさそうでした。
- ngnixを再起動してもだめでした。
※そもそもngnixのエラーじゃなかったのに、反省‼ php artisan view:clear
-
php artsan config:clear
-ブラウザからキャッシュを削除
解決方法と手順:
1) laravelのコマンドでルート一覧を確認
php artisan route:list
確かに、404エラーのルートは登録されていないようです。昔の別ブランチのルートは登録されています。なぜ?!
2)ルートのキャッシュを削除
php artisan route:clear
これでOKでした!
###結論
(1)404エラー出た時、まずlaravelの404エラーかngnixエラーか間違いないように!ngnixエラーの場合はnginxの設定ファイルを確認したら、Homestead.yamlの設定を確認したりしましょう。
(2)laravelの404エラーの場合はまずルートはroutes/web.phpに正しく登録されてるかを確認。正しく登録される場合は、
php artisan route:listでrouteが一覧に出ているかどうかを確認。出なかったら、php artisan route:clearでキャッシュを削除してから、もう一回ページをアクセスしてみる。