如何避免缓存
发布于 10 年前 作者 nighca 4327 次浏览 最后一次编辑是 8 年前 来自 问答

理论上通过在服务端设置响应的head就可以控制客户端是否缓存资源。如:

Cache-control: no-cache
Cache-control: no-store
Pragma: no-cache
Expires: 0

可是为什么多数总是需要避免缓存的情况(如请求验证码图片)下,是采用前端url拼接随机参数的方式避免缓存,而不是服务端来控制呢。

通过服务端设置响应头的控制缓存方式是有什么坑吗?

3 回复

个人认为,对验证码,这两种方式都应该很合适。但是对js、css等静态文件不一定合适。比如,my.js版本是v1,可以:

<script src="my.js?v=v1"></script>

在my.js再一次修改之前是适合缓存的。当my.js修改后版本变成v2,则可以:

<script src="my.js?v=v2></script>

这样,客户端就用到了最新的my.js

目前采用的办法是用 gulp 自动加参数,类似 @someus 的那种,服务端的不会,所以没试过。

@someus 感谢分析!

回到顶部