项目做了功能升级,但是发现部分用户还是没升级成功(绝大多数是企业微信),于是又升级了版本加了埋点。
现在发现还是有用户访问的是以前的资源,而且比较奇怪的是同一个用户UA
一样时间点也临近,就是反复进到这个页面,有时候访问的是新资源(加埋点的),有的时候访问的是老资源(没加埋点)
请问下这是因为企业微信缓存了多个js
资源每次进入页面加载的资源不一样导致的吗?如果是这样的话,怎么解决呢?
备注:
我们的js
资源过期时间是两个月
老的资源已经远超两个月了按理说早就应该过期了啊
项目做了功能升级,但是发现部分用户还是没升级成功(绝大多数是企业微信),于是又升级了版本加了埋点。
现在发现还是有用户访问的是以前的资源,而且比较奇怪的是同一个用户UA
一样时间点也临近,就是反复进到这个页面,有时候访问的是新资源(加埋点的),有的时候访问的是老资源(没加埋点)
请问下这是因为企业微信缓存了多个js
资源每次进入页面加载的资源不一样导致的吗?如果是这样的话,怎么解决呢?
备注:
我们的js
资源过期时间是两个月
老的资源已经远超两个月了按理说早就应该过期了啊
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.7k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
3 回答10.3k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.8k 阅读
微信内置的浏览器我记得是强缓存的,并不走协商缓存。第一次进入时会读取本地缓存,用户点击菜单中的刷新才会请求新的文件。
反正蛮蠢的,社区大量吐槽还是这样(起码得有四年了)……
如果不是超大的项目,可以简单粗暴点直接给前端的HTTP服务整个设置
expires -1
。但是用户本地已经有缓存了好像得用户清理一次本地缓存才行?(不是很确定)
当然最理想状态下是
index.html
设置expires -1
,然后静态资源名添加content-hash
值后开启缓存。如果改动比较大就还是直接设置都不缓存,后面再慢慢优化……