【发布时间】:2011-11-22 09:42:54
【问题描述】:
如果我决定使用 javascript 或 css 文件的 last_modified_time,并使用它的 unix 时间戳作为名称中的键,以在文件被修改时破坏缓存。 以下两种做法有什么区别? 文件名是:my_script.js,时间戳是:1321951817
1/ 文件包含为:
<script type="text/javascript" src="http://example.com/js/my_script.js?v=1321951817"></script>
因此,每次v 更改时,查询字符串参数都会创建一个新的缓存。
2/ 文件包含为:
<script type="text/javascript" src="http://example.com/js/my_script.1321951817.js"></script>
文件名随着每次修改而改变,重写规则删除时间戳并将请求的 url 指向my_script.js
3/ 更新:基于以下答案的另一种方法:文件已重命名并包含为:
<script type="text/javascript" src="http://example.com/js/my_script.1321951817.js"></script>
文件名已更改且未使用 REWRITE RULE。
问题:这两种技术本质上是否相同,或者使用查询字符串参数而不是直接文件名有什么优点/缺点。
【问题讨论】:
-
您也可以使用方法 2) 使用路径名而不是文件名:
http://example.com/v-1321951817/js/my_script.js。
标签: javascript versioning