AngularJSを使っていまして、更新したのにキャッシュ機能が働いていてブラウザでは変更が反映されてない・・・なんてことがちょいつづき、キャッシュを無効化する機能を調査しました。
まず通常のHTMLですが、HTMLヘッダに下記のように書けばOKなようです。
1 2 3 |
<meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> |
cssやjsファイルの後ろに下記のように何らかのクエリをつければ回避できるようです。
自分はCakePHPを使っているんでtimeをいれて下記のように解決しました。PHPであれば javascriptのファイル名?v=<?php echo time()?> などでいけると思います。
1 |
<?= $this->Html->script('report_list.js?v='.time()) ?> |
無効になっているかどうかの判定ですが、ChromeやFireFoxのデバッグ機能でHTMLのステータスコードが200になっていればOKです。キャッシュが聞いていると304がでます。
HTML ファイルがなかなか更新されない場合、キャッシュを無効にする (通所のHTML)
iwb.jp CSSやJSをキャッシュさせない方法(cssやJS)