StackOverflow像这样实现它:
<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=4542">
每次引用的文件发生更改时,链接标记的href属性都会在HTML代码中更新,从而支持缓存和更新的引用文件。
我的问题 - 如何检索要包含在链接中的css文件的subversion版本? Subversion关键字只会告诉您当前所在文件的修订版本。
我正在使用PHP / CodeIgniter + jQuery。
答案 0 :(得分:2)
all.css
是一个静态文件。
每次更改文件时参数都会递增,以确保浏览器不会错误地缓存它,因为http://sstatic.net/so/all.css?v=4542
和http://sstatic.net/so/all.css?v=400
被视为不同的文件。
这也常用于广告网络中,根据图片下载次数计算“点击次数”,浏览器缓存会隐藏视图的真实值。
答案 1 :(得分:0)
使用所谓的svn commit hook。对不起,我没有得到详细信息,但希望你可以通过谷歌搜索找到那些。
顺便说一下......你可以使用文件的时间戳作为cachebuster
index.php?p=blabla&v=".filemtime('mystyle.css')
答案 2 :(得分:0)
运行命令svn info --xml / path / to / file,然后查看info / commit / revision。这是特定文件更改时的最后一次修订。
使用上面的代码,您可以编写一个实用程序来创建js / css / img文件及其版本号之间的映射。然后可以在php中加载此映射,并将其附加为像stackoverflow那样的查询字符串。
这种方法的优点是,当资源实际发生变化时,版本仅会发生变化。因此,您可以设置积极的缓存标头 - 实质上是告诉浏览器永远缓存资源。