【发布时间】:2014-01-23 04:23:24
【问题描述】:
我正在尝试将查询字符串附加到所有 .js 文件的末尾,而不实际更改代码。这样做的目的是让静态文件在更改时从服务器而不是缓存中提取,这样我们就没有任何过时的静态文件。
所以当我的 html 说
<script type="text/javascript" src="file1.js">
我希望它真正拉动
<script type="text/javascript" src="file1.js?v=1">
来自服务器。这可能吗?
到目前为止我有:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)\.js$ /$1.js?v=1 [L,R]
但我认为它并没有达到我想要的效果......
【问题讨论】:
-
如果资源被缓存并带有过期日期,浏览器将永远不会首先发出请求。为什么不简单地设置缓存规则呢?
-
@Pekka웃:提问者可能不明白缓存规则是如何实际应用的——你可能想在答案中解释一下。
-
@Qantas 是的,正在寻找链接
-
我不想不缓存它们,也不想将它们设置为在一定时间后过期。我会将它们设置为永不过期,并且当文件更改时,服务器将有效地更改它们的名称并重新缓存新文件。类似于 force-reload-css-javascript-unique-filenames 的东西,但没有在 html 中进行所有更改。只是进行 apache 更改。
标签: apache .htaccess caching mod-rewrite