有个小疑问,浏览器设置协商缓存通过e-tag和last-modified的话,前端的js、css资源进行了变更之后,为什么还要手动修改版本号去除缓存呢?
有个小疑问,浏览器设置协商缓存通过e-tag和last-modified的话,前端的js、css资源进行了变更之后,为什么还要手动修改版本号去除缓存呢?
强制缓存,设置请求头中cache-controll: max-age 和 Expries 不会向服务器发送请求,直接从本地浏览器获取。强制缓存优先于协商缓存。
另外一方面,如果用到cdn的话,还有cdn缓存问题
e-tag和last-modified的缓存仍然需要请求一次服务端,来判断文件是否已经过期,没过期就从缓存读取;
带版本号的文件可以设置为永不过期,可以省掉上面所说的请求,直接从缓存中读取。
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
恩 ... 更新版本号不是为了方便版本管理吗?