[最終更新] 2019年6月22日
Web開発でcssを差し替えた時などに、キャッシュが残っているため変更が反映されない、ということがよくある。そういう時には、強制的にキャッシュを再読込する、俗に言うスーパーリロードを行う。
が、なんだか色々とうまくいかなかった。色々なものを再起動させたりなんだりしたらうまくいった。自分自身わけがわからない、だが、とにかく変更を反映させるための軌跡をメモする。
リロードの理屈
まずリロードの理屈について。これについては「Chromeのキャッシュを「完全に」削除する方法、まとめ。 | WWWクリエイターズ」の記事が非常に詳しくて、まぁこれを読めばOKなのだが、軽く書いておく。
リロードとはページを再読込することだが、その際、キャッシュを利用するかしないか、という違いがある。もちろんキャッシュを利用するほうが色々と優しい。なので、静的コンテンツについてはローカルに保存したキャッシュを最大限利用する。
この場合の弊害として、中身が変わっていたとしても、キャッシュが反映されてコンテンツの変更が即座に反映されない、ということがある。たとえばcssでデザインを変えた時、などに起きる。これは普通に使っている分にはあまり問題ないけれど、開発者としてはすぐに反映されないと困るわけだ。
そんな時は、キャッシュを用いずにすべてコンテンツを再度読み込む、ハードリロード、俗にいうスーパーリロードを行う。これはブラウザによってやり方が異なるが、Chromeの場合は、Ctrl(MacならCmd) + Shift + Rを用いる。
これでだいたいOKなのだが、JavaScriptなどで動的に加えられた外部ファイルなどではまだダメで、これのキャッシュも使わない、とするには、デベロッパーツールを起動したうえで、ブラウザの更新アイコンを右クリックして、「キャッシュの消去とハード再読み込み」を行う。

これで、理屈としてはまず変更が反映されるはず。
実際のところ
しかし、実際には中々反映されないことがある。しかも、それが単なるHTMLファイルであったりすることもあるから、本当によくわからない。サーバサイドの問題も絡んでいるような気がする。
- Webサーバ(apache)を再起動したら反映された
- アプリケーションサーバ(tomcat)を再起動したら反映された
- Chromeを立ち上げなおしたら反映された
デベロッパーツールを起動したままだと、変更が反映されなかった、というよくわからない報告も聞く。
理屈としては、三種のリロードで十分そうなのだが……ううーん……。
関連記事
その他プログラミング言語 の記事
- [2019年3月16日] Web APIのエンドポイントを考えるときの自分の指針
- [2018年12月27日] iOSデバイスだけブラウザバックでキャッシュを利用されて困った、しかもサーバー側の環境によって異なる
- [2018年9月7日] 大文字小文字区切り、ハイフン区切り、アンダースコア区切り
- [2018年7月4日] eclipseで進行中のプロジェクトをbitbucketで管理したい
- [2018年6月28日] FESSで検索ないし更新のエイリアスを別のインデックスを付け替える
- ---本記事---
- [2018年5月30日] FESSでラベルなしクローラを混ぜたスケジューラを動かしたら検索結果が変になったメモ
- [2017年11月20日] Tabbed Appでstoryboardから3つ目のタブを作る手順のメモ
- [2017年1月28日] MacのHomebrewでimagemagickを入れているとgem install rmagickが失敗するようになったメモ
- [2016年11月11日] AndroidでFFTはJTransformsが楽だった
- [2016年11月8日] Androidアプリ開発:3.5mmイヤホン端子からマイク録音
スポンサーリンク