仅缓存最新版本的javascript文件

时间:2012-11-12 17:36:49

标签: php javascript svn caching browser-cache

即使我使用

,我也无法通过浏览器缓存javascript文件
FileETag MTime Size

在htaccess中检查修改后的时间和大小,看它是否是最新版本。我目前包含这样的javascript文件:

<script src="/code.js" type="text/javascript"></script>

我尝试将SVN修订信息添加到文件调用中,如下所示:

<script src="/code.js?svn=123" type="text/javascript"></script>

但我找不到防弹方法,因为我无法按文件名(任何建议)进行修订,即使我添加了修订版,HTML也会被Smarty预编译和缓存。 / p>

所以我考虑过不为模板使用缓存块,但我还没有尝试过这种方法。由于文件只编译一次会有什么不同吗?

所以基本上我只是收集有关如何强制浏览器仅缓存最新版本文件的想法。理想的解决方案是通过实际工作的htaccess,而不是像FileETag,因为有了这个,你总是必须按CTRL + F5来获得最新版本。

1 个答案:

答案 0 :(得分:2)

将高速缓存存储器添加到文件路径中是最好的方法。您可以通过?方法执行此操作,或将其添加到文件的路径中,如:/static/123/code.js

之后你将在未来10年内添加一个过期标题,你很高兴。所以你的问题是如何在网址中生成数字。也许您可以更改部署脚本以在部署时替换该编号,这样您就不需要关心版本号

另一个想法是计算js文件的md5哈希并在路径中使用它。