ブラウザがキャッシュしたJavaScritpやCSSや画像などを確実に更新したい場合、ファイルの後ろにタイムスタンプ(更新日時)をつける。
CakePHP3,CakePHP4ともに以下の方法をとる。
ヘルパーを使って静的ファイルを配置する。
ヘルパーを使わないと、面倒見てくれないので、ヘルパーを使って配置する。
$this->Html->script('app'); $this->Html->css('style'); $this->Html->image('cake_logo.png')
config/app.phpのAsset timestapをtrueかforceにする。
trueはデバックモード時に、forceは常にタイムスタンプをつけるようになる。
'Asset' => [ 'timestamp' => true, ],
結果
<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