我已经看过很多,但我不知道这意味着什么。例如:
<script src="http://server.com/file.js?y=2345678" type="text/javascript"></script>
如果可以在javascript文件中“捕获”'y'的值,那会是怎样的?
谢谢。
PS。我知道mod_rewrite是什么,这不是答案,以防万一:)
答案 0 :(得分:5)
这是为了强制浏览器不要缓存文件,因为它认为它是带有get参数的动态文件而不是静态文件。
答案 1 :(得分:2)
这通常用于促进JS文件的缓存。您设置了远期Expires
标头,这意味着浏览器可能会将其缓存很长时间。如果您在文件中更改了某些内容,则还会更新查询字符串中的数字,这将使浏览器重新获取该文件。这是有效的,因为缓存是针对唯一的文件名,而查询字符串是文件名的一部分(就浏览器而言)。
类似的方法是在Web服务器中使用重写规则来获得它不关心的文件名的某些部分。这是一个Nginx规则来显示我的意思:
rewrite ^/style\..*\.css$ /style.css;
我使用此规则来获取style.42750cad6.css
等文件名,该文件名始终指向文件style.css
。每当我更改style.css
时,中间的文本都会更改。第一种方法的区别在于,它不使用查询字符串,因此缓存可以在更多浏览器中使用。
答案 2 :(得分:1)
好吧,我用两种方式看待它。