ブラウザがキャッシュしたJavaScritpやCSSや画像などを確実に更新したい場合、ファイルの後ろにタイムスタンプ(更新日時)をつける。
CakePHP3,CakePHP4ともに以下の方法をとる。
ヘルパーを使って静的ファイルを配置する。
ヘルパーを使わないと、面倒見てくれないので、ヘルパーを使って配置する。
1 2 3 4 5 |
$this->Html->script('app'); $this->Html->css('style'); $this->Html->image('cake_logo.png') |
config/app.phpのAsset timestapをtrueかforceにする。
trueはデバックモード時に、forceは常にタイムスタンプをつけるようになる。
1 2 3 |
'Asset' => [ 'timestamp' => true, ], |
結果
1 2 |
<link rel="stylesheet" href="/css/style.css?1478939889"/> <script src="/js/app.js?1479019884"></script> |
ちなみに、UrlHelperの中のassetTimestampメソッド中を見ると、タイムスタンプはファイルのfilemtimeの値を使用している。
https://github.com/cakephp/cakephp/blob/master/src/View/Helper/UrlHelper.php