有没有一种方法可以在下次客户端浏览器访问网站时替换或删除缓存的CSS和JS文件?
有没有一种方法可以在下次客户端浏览器访问网站时替换或删除缓存的CSS和JS文件?
是的,请为其指定版本号。例如,客户端在您的网站上加载:
http://path/to/cssFile.css
http://path/to/cssFile.css?version=1.001
一旦您设置了过期日期标头,客户端/缓存服务器将在指定的日期之前缓存该URL。描述缓存机制在此处写起来非常冗长...(如果您不熟悉它,请谷歌一下)
您无法对其进行任何控制。但是!如果您更改URL,客户端将认为它是新资源,并再次从您的服务器获取它。因此,请尝试在资源后使用虚假查询来进行操作。
而不是
http:/example.com/static/style_main.css
use:
http:/example.com/static/style_main.css?t=1234
当你认为是时候改变它时,增加这个数字。
===
如果你调整好了你的应用程序,并使用像Apache或nginx这样的好的Web服务器来提供这些静态文件,它们会为你处理,而不需要任何努力。因为客户端将要求服务器提供最新版本,它将响应403未修改或文件内容(如果自上次以来已更改)。
如果您的JS / CSS是动态更改的,则最好的方法是明确设置其标头以不被缓存。
...site.css?v=1
,当 CSS 文件被修改时,则将其更改为...site.css?v=2
。 - artm