LoginSignup
23
23

More than 5 years have passed since last update.

【CakePHP】リリースタイミングでのブラウザキャッシュの回避方法

Last updated at Posted at 2014-05-21

リリース時に、jsやcssがブラウザキャッシュに残り、変更が反映されない問題の対応方法。

実現方法

jsやcssは?以降に書いたクエリストリングも含めて認識している。
そのため、リリースごとにクエリストリングを変更すれば、リリース直後にjsやcssを再読み込みして、その後はキャッシュされる。
ちなみに、クエリストリングは、?XXX=YYYの形であれば何でも良い。

js
<script type="text/javascript" src="hoge.js?ver=852"></script>
css
<link rel=stylesheet type="text/css" href="hoge.css?ver=852"/>

CakePHPでの例

core.phpで設定できるAsset.timestampを有効にすることにより、ヘルパーで作成したjsやcssの読み込みに、最終更新日をクエリストリングとして付与してくれる。

Configure::write('Asset.timestamp', 'force');

コメントアウト前のデフォルトでは、第二引数がtrueになっている。trueの場合はdebugレベルが0より大きい場合(つまりDevelopment Modeの場合)のみ有効になるが、forceを設定すると常に有効になります。

参考:CakePHP2のcore.phpでAsset.timestampの設定を変更するとブラウザキャッシュを無効化することができる

23
23
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
23