我有一个系统,其中将缓存最大使用率设置为0,并且在我对style.css进行了一些更改时出现问题。css失败,更改不会出现在客户端上。浏览器将使用旧的CSS缓存版本。我有一个简单的问题:将css文件命名为style.css?123是否会作为新缓存?
是的,在资源的URI中添加唯一的查询字符串将强制客户端获取“新”版本(因为客户端不知道这仅仅是对先前缓存的资源的 更新 )。这称为 指纹识别 ,通常使用CSS文件的时间戳或版本号1递增。
“使缓存的响应无效和更新” 的部分 :
您如何获得两全其美:客户端缓存和快速更新? 您更改资源的URL,并在内容更改时强制用户下载新响应。通常,您可以通过在文件名(例如样式)中嵌入文件的指纹或版本号来完成此操作。 x234dff .css。
请注意,指纹不必是序列号。只要冲突的风险受到限制,任何值(哈希,版本等)都将起作用。
1)这就是在SO上完成的工作,例如http://sstatic.net/js/global-login.js?v=12
http://sstatic.net/js/global-login.js?v=12