【发布时间】:2015-09-15 16:20:21
【问题描述】:
我只阅读了有关 cakephp 缓存文件的两个选项:
- 而是将它们全部缓存
- 或者您不缓存任何内容。
我想要介于两者之间的东西。使用版本参数,与我们在任何其他网站上所做的相同:
script.js?v=2
通过这种方式,我们可以手动甚至自动强制加载修改过的文件,同时在没有对其进行更改时将其缓存。
【问题讨论】:
标签: php cakephp cakephp-3.0
我只阅读了有关 cakephp 缓存文件的两个选项:
我想要介于两者之间的东西。使用版本参数,与我们在任何其他网站上所做的相同:
script.js?v=2
通过这种方式,我们可以手动甚至自动强制加载修改过的文件,同时在没有对其进行更改时将其缓存。
【问题讨论】:
标签: php cakephp cakephp-3.0
CakePHP 提供了一种将时间戳应用于 CSS 和 JS 文件等资产的方法,该方法仅在文件更改时刷新。这相当于执行 'script.js?v=2',Cake 会生成类似 'script.js?1442387965' 的 URL。
在 CakePHP 3.x 中(在 config/app.php 中):-
'Asset' => [
'force'
]
在 CakePHP 2.x 中(在 app/Config/core.php 中):-
Configure::write('Asset.timestamp', 'force');
如果您只想在启用调试模式时应用时间戳,请将上述设置为 true 而不是 force。
【讨论】:
Configure::read('Site.version') 或类似方法的问题,这可能是一个更好的主意。注意using query args may affect intermediary caches.