阅读有关构建 Web 应用程序的教程,并建议始终将查询字符串“?v = 1”附加到所有 .css 和 .js 文件以防止缓存。
这是“最佳实践”吗?
查询字符串是否应该仅在生产开发期间使用?
我认为这很好,但就最佳实践而言,这确实是主观的。
最流行、最广泛使用的 CMS 使用这种方法,所以我认为这是要走的路。
人们不明白的是,这种方法并不是向浏览器发出可以缓存此文件的信号的最简单方法,而是仅在版本更改时才重新缓存。
第一个问题的简短回答,是的。
至于第二个问题“生产-开发”是矛盾的。它是生产还是开发?
如果您在服务器端做某事,那么在文件更改时很容易防止缓存:
PHP:
<script src="<?= $file.’?’.filemtime($file); ?>">
节点.js
res.write('<script src="' + file + '?' + new Date(fs.statSync(file).mtime).getTime());
这会将修改后的时间戳附加到文件中,因此它只会在文件被修改时阻止缓存。