前端的js、css资源进行了变更之后,为什么还要手动修改版本号去除缓存呢?

有个小疑问,浏览器设置协商缓存通过e-tag和last-modified的话,前端的js、css资源进行了变更之后,为什么还要手动修改版本号去除缓存呢?

阅读 2.8k
4 个回答

恩 ... 更新版本号不是为了方便版本管理吗?

强制缓存,设置请求头中cache-controll: max-age 和 Expries 不会向服务器发送请求,直接从本地浏览器获取。强制缓存优先于协商缓存。
另外一方面,如果用到cdn的话,还有cdn缓存问题

e-tag和last-modified的缓存仍然需要请求一次服务端,来判断文件是否已经过期,没过期就从缓存读取;
带版本号的文件可以设置为永不过期,可以省掉上面所说的请求,直接从缓存中读取。

你加时间戳也可以啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题