こんにちは!
個人開発をしている南です!
今回は、Laravelで開発をしている時にViewファイルやController部分を変更したのに、反映されないといった問題に対処する方法を紹介します。
僕は開発環境はLaradock(ララドック)を使って開発しているのですが、Laravelのキャッシュがきつくて変更が反映されないといった問題が発生しました。
そこで、色々調べたりしてなんやかん2,3時間くらい潰してしまったので、自分用のメモとして残しておきます。
ちなみに、LaradockとはDockerのLaravel専用の開発環境になります。
気になる方は、下記に公式サイトを載せておきますので、見てみてください。
Laravelのキャッシュを消す方法
Laravelのキャッシュは以外とキツくて、開発をしている時は少しイライラするかもしれません。
ただ、キャッシュがあることでページの表示速度などが早くなるので、ないとそれはそれで困るというなかなか困りものです。。。
そんなLaravelにはちゃんとキャッシュのクリアコマンドがあるので、そちらを試してみましょう。
具体的には、次のようなキャッシュクリアコマンドがあります。
・applicationキャッシュクリアコマンド
・routeキャッシュクリアコマンド
・configキャッシュクリアコマンド
・viewキャッシュクリアコマンド
applicationキャッシュクリアコマンドについて
applicationキャッシュクリアコマンドは、Laravelのアプリで動いている基本的なキャッシュを削除するコマンドです。
実際のコマンドは次のとおり。
1 |
php artisan cache:clear |
routeキャッシュクリアコマンドについて
routeキャッシュクリアコマンドは、Laravelルート部分のキャッシュをクリアしてくれるコマンドです。
実際のコマンドは次のとおり。
1 |
php artisan route:clear |
configキャッシュクリアコマンドについて
configキャッシュクリアコマンドは、Laravelコンフィグ部分のキャッシュをクリアしてくれるコマンドです。
実際のコマンドは次のとおり。
1 |
php artisan config:clear |
viewキャッシュクリアコマンドについて
configキャッシュクリアコマンドは、Laravelビュー部分(bladeファイルなど)のキャッシュをクリアしてくれるコマンドです。
実際のコマンドは次のとおり。
1 |
php artisan view:clear |
コマンドを実行する場所について
ちなみに、紹介してきたコマンドを実行する場合は、Dockerのワークスペースにログインした状態で、Laravelアプリケーションのトップ部分で実行するようにします。
Dockerのワークスペースにログインするには、Laradockのディレクトリ内で下記のコマンドを実行します。
まずは、「cd」コマンドなどでlaradockのディレクトリまで移動します。
「ls」コマンドなどを打つと、下記のように色々と表示されます。
Laradockまで移動したら下記のコマンドを実行しましょう。
1 |
docker-compose exec workspace bash |
うまく実行できると、ターミナルの画面が下記のように表示されます。
もし、何かしらエラーが出たりする場合はワークスペースが使えない場合があるので、その場合はワークスペースをインストールするようにしましょう。
あとは、「cd」コマンドを使って開発しているLaravelのところまで移動して、「ls」コマンドを入力します。
今まで紹介してきたコマンドはここの場所で入力するようにしましょう。
SSHできない場合
自分のローカルで開発している場合は、SSHできない場合もあると思います。
その場合は、下記のコードをroutes/web.phpの中に書き込んで/clear-cacheドメインにアクセスしてキャッシュを削除する方法もあります。
1 2 3 4 |
Route::get('/clear-cache', function() { Artisan::call('キャッシュが削除できました。'); return "キャッシュが削除できました。"; }); |
キャッシュをクリアしても反映されない場合
今まで紹介してきたコマンドを打ち込んで、ブラウザを「cmd+r」などでリロードしてもキャッシュが消えない場合は、Dockerを止めてもう一度立ち上げましょう。
手順としては、今まで紹介してきたコマンドをもう一度打ち込んで、キャッシュを削除。
その後に、Dockerを止めて再起動します。
Dockerを止めるコマンド
今動かしているDockerを止める場合は、ターミナルでローカルの「Laradock」に移動して下記のコマンドを入力します。
1 |
docker-compose stop |
もし、ワークスペース内にいる場合は下記のコマンドを入力するとワークスペースから出ることができます。
1 |
exit |
Dockerをもう一度立ち上げるコマンド
Dockerを止めることができたら、今度はDockerをもう一度立ち上げます。
Dockerをもう一度立ち上るには、次のコマンドを打ちます。
Laradockを動かしている場合は、下記のコマンドで立ち上がると思います。
1 |
docker-compose up -d nginx mysql workspace phpmyadmin |
これで、もう一度変更したブラウザにアクセスしてみてください。
おそらく、変更した内容が反映されているかと思います。
まとめ
今回は、Laradock環境でLaravelのキャッシュをクリアする方法を紹介しました。
今回紹介した内容が同じように悩む、あなたのお役に立てれば幸いです。