将查询字符串附加到所有.js和.css文件以防止缓存?

时间:2012-07-06 12:31:42

标签: css caching

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

这是'最佳做法'吗?

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

2 个答案:

答案 0 :(得分:2)

我认为这很好,但就最佳做法而言,这是非常主观的。

最受欢迎,使用最广泛的CMS使用此方法,因此我认为这是最佳选择。

人们不理解的是,这种方法并不是向浏览器发出信号的最简单方法,即该文件可以缓存,但只有在版本发生变化时才会被回收。

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

至于第二个问题“生产发展”是矛盾的。哪个是生产或开发?

答案 1 :(得分:1)

如果您在服务器端执行某些操作,则在文件更改时阻止缓存非常容易:

PHP:

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

的node.js

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

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