如何从客户端浏览器中删除/替换缓存的CSS和JS文件?

6

有没有一种方法可以在下次客户端浏览器访问网站时替换或删除缓存的CSS和JS文件?


你的意思是在它们被修改之后还是每次都要修改? - artm
@artm 每次我们修改它 - Sachin B. R.
1
一个简单的方法是在链接中添加一个参数,例如...site.css?v=1,当 CSS 文件被修改时,则将其更改为...site.css?v=2 - artm
3个回答

5

是的,请为其指定版本号。例如,客户端在您的网站上加载:

http://path/to/cssFile.css

如果你更改了内容并添加了版本号,当用户再次访问时,他们将重新下载它,例如:
http://path/to/cssFile.css?version=1.001

0

0

一旦您设置了过期日期标头,客户端/缓存服务器将在指定的日期之前缓存该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是动态更改的,则最好的方法是明确设置其标头以不被缓存。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接