我们遇到了两种对 CSS 文件进行缓存破坏的方法。
缓存断路器作为查询参数传递:
http://your1337site.com/styles/cool.css?v=123
Run Code Online (Sandbox Code Playgroud)
缓存断路器作为名称的一部分:
http://your1337site.com/styles/123.cool.css
Run Code Online (Sandbox Code Playgroud)
哪种方式更好?为什么?
我觉得第二种方式更冗长,因为文件与文件夹结构上的名称匹配。如果您想在网站的其他部分共享“cool.css”,而这些部分无法访问您每次生成的唯一名称,则第一种方法很好。
Steve Souder 的文章Revving Filenames: don\xe2\x80\x99t use querystring为将文件名更改为两者中更好的一个提供了很好的论据。
\n\n\n\n\n...同事 Jacob Hoffman-Andrews 提到,Squid(一种流行的代理)不会\xe2\x80\x99t 使用查询字符串缓存资源。当代理缓存后面的多个用户请求相同的文件 \xe2\x80\x93 而不是使用每个人都必须向源服务器发送请求的缓存版本时,这会损害性能。
\n
顺便说一句,Squid 2.7 及更高版本确实使用默认配置缓存动态内容
\n