4

我见过很多,我只是不知道这意味着什么。例如:

<script src="http://server.com/file.js?y=2345678" type="text/javascript"></script>

如果确实有可能在 javascript 文件中“捕获”“y”的值,那会怎样?

谢谢你。

PS。我知道 mod_rewrite 是什么,这不是答案,以防万一:)

4

3 回答 3

5

这是为了强制浏览器不缓存文件,让它相信它是一个带有 get 参数的动态文件,而不是一个静态文件。

于 2012-09-27T06:18:47.493 回答
2

这通常用于促进 JS 文件的缓存。您设置了一个遥远的Expires标题,这意味着浏览器可能会缓存它很长时间。如果您更改文件中的某些内容,您还会更新查询字符串中的数字,这将使浏览器重新获取文件。这是有效的,因为缓存用于唯一的文件名,而查询字符串是文件名的一部分(就浏览器而言)。

与此类似的方法是在 Web 服务器中使用重写规则来获取它不关心的文件名的某些部分。这是一个 Nginx 规则来说明我的意思:

rewrite ^/style\..*\.css$ /style.css;

我使用这个规则来获得像 一样的文件名style.42750cad6.css,它总是指向文件style.css。每当我更改时,中间的文本都会更改style.css。第一种方法的区别在于它不使用查询字符串,因此缓存将在更多浏览器中工作。

于 2012-09-27T06:19:42.580 回答
1

好的,我以两种方式看待它。

  1. 可以用来加载js而不用缓存
  2. 对于对服务器的每个请求,服务器可能会记录信息(如果启用了日志记录),如果我将其用于分析,我可以因此对位置使用不同的参数,并且我可以从日志中分析并获取所需的详细信息。
于 2012-09-27T06:28:00.320 回答