[CakePHP4] javascriptやcssにタイムスタンプ(更新日時)をつける方法

ブラウザがキャッシュした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

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>