7

阅读有关构建 Web 应用程序的教程,并建议始终将查询字符串“?v = 1”附加到所有 .css 和 .js 文件以防止缓存。

这是“最佳实践”吗?

查询字符串是否应该仅在生产开发期间使用?

4

2 回答 2

2

我认为这很好,但就最佳实践而言,这确实是主观的。

最流行、最广泛使用的 CMS 使用这种方法,所以我认为这是要走的路。

人们不明白的是,这种方法并不是向浏览器发出可以缓存此文件的信号的最简单方法,而是仅在版本更改时才重新缓存。

第一个问题的简短回答,的。

至于第二个问题“生产-开发”是矛盾的。它是生产还是开发?

于 2012-07-06T12:52:55.670 回答
1

如果您在服务器端做某事,那么在文件更改时很容易防止缓存:

PHP:

<script src="<?= $file.’?’.filemtime($file); ?>">

节点.js

res.write('<script src="' + file + '?' + new Date(fs.statSync(file).mtime).getTime());

这会将修改后的时间戳附加到文件中,因此它只会在文件被修改时阻止缓存。

于 2012-07-06T12:57:45.760 回答