缓存断路器作为查询参数与文件名中的缓存断路器

时间:2013-08-19 21:34:08

标签: css browser-cache

我们遇到过两种方法来处理CSS文件的缓存。

缓存断路器作为查询参数传递:

http://your1337site.com/styles/cool.css?v=123

缓存断路器作为名称的一部分:

http://your1337site.com/styles/123.cool.css

哪种方式更好?为什么?

我觉得第二种方式更冗长,因为文件与文件夹结构上的名称相匹配。如果您想在网站的其他部分共享“cool.css”,那么第一种方式就是好的,这些部分无法访问您每次生成的唯一名称。

1 个答案:

答案 0 :(得分:4)

史蒂夫·索德尔的文章Revving Filenames: don’t use querystring为改变文件名提供了一个很好的论据。

  

......一位同事Jacob Hoffman-Andrews提到Squid是一种流行的代理,它不会使用查询字符串来缓存资源。当代理缓存后面的多个用户请求相同的文件时,这会损害性能 - 而不是使用缓存版本,每个人都必须向源服务器发送请求。

另外,Squid 2.7及以上版本cache dynamic content with the default configuration