route:clear — ルーティングキャッシュをクリアするコマンド
artisan
php artisan route:clear は、Laravel のルートキャッシュ(bootstrap/cache/routes.php)を削除する Artisan コマンドです。
ルート定義を変更したときや 404 が出るときにキャッシュが原因か確認したいときに使用します。
コマンド概要
php artisan route:clear [options]
| オプション | 説明 | デフォルト |
|---|
--force | 確認プロンプトをスキップ | – |
--quiet | 出力を抑制 | – |
--no-interaction | 交互入力を行わない | – |
いつ route:clear を実行するか
| シチュエーション | 実行タイミング | 目的 |
|---|
| ルートファイルの変更後 | 直ちに | キャッシュを更新しないと古いルートが残る |
| デプロイ時 | デプロイスクリプト内 | 本番環境で最新ルートを確実に反映 |
| 404 が一時的に発生 | デバッグ中 | キャッシュが原因か調べる |
ベストプラクティス
- 変更後にキャッシュをクリア
php artisan route:clear
- 本番環境で再キャッシュ
php artisan route:cache --force
- キャッシュ状態を確認
php artisan route:list
- 開発環境では
- ルートにクロージャ (
fn() => ...) を使用している場合、キャッシュしない(route:cache で無視される)。
- 変更頻度が高い場合はキャッシュを作らず、毎回ロードする方が安全。
- デプロイスクリプト例(Bash)
#!/bin/bash
set -e
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan config:cache
php artisan route:cache --force
よくあるトラブルと対処
| エラー | 原因 | 対策 |
|---|
RuntimeException: bootstrap/cache/routes.php is not writable | ファイル権限 | chmod -R 775 bootstrap/cache もしくは chown -R www-data |
| ルートが反映されない | ルート定義にクロージャが含まれている | クロージャをコントローラに移動 |
| 404 から正常に戻らない | 旧キャッシュが残っている | php artisan route:clear + php artisan route:cache |
主要コマンドまとめ
| 目的 | コマンド | 備考 |
|---|
| ルートキャッシュをクリア | php artisan route:clear | – |
| ルートをキャッシュ | php artisan route:cache | 本番推奨 |
| 全キャッシュをクリア | php artisan optimize:clear | config, view, route 等を同時にクリア |
| ルート一覧を確認 | php artisan route:list | 変更が反映されているか確認 |
さらに深掘りしたい場合
- Laravel Docs – route:clear
- Stack Overflow – ルートキャッシュに関する質問と回答
まとめ
route:clear は「ルート定義を更新したときに古いキャッシュを削除するためのコマンド」です。
開発中は頻繁に使い、デプロイ時には「キャッシュをクリア → 再キャッシュ」の流れで本番環境のパフォーマンスと安全性を確保しましょう。