前文
APP内嵌H5曾经很广泛了,然而每个app提供的webview体现都不太一样,在开发中遇到了一个十分辣手的缓存问题。APP启动时加载了咱们商城我的项目的H5代码,而后把index.html文件缓存到了本地。
记录一下
问题体现
H5我的项目打包上线后,因为动态资源js和css文件名前面都带了哈希值,这是webpack打包带上的,也是为了=避免缓存。然而在app启动后因为缓存了html申请的还是上个版本包的动态资源,导致index.a878n.js找不到404,页面吧白屏了。-----咱们H5我的项目打包上线后,服务器上上个版本的代码就清掉了。
解决办法
咱们一开始给html加上了一段随机数,就是app加载到html时,在url前面加随机数,然而发现webview的html缓存,导致咱们的js批改是更新不上的。
最初解决方案是,app端加载我的项目时在域名后加工夫戳并降级app才可。
为了防止这种问题呈现,那就是我的项目首次上线时就要在html内给url加上随机数,让webview不缓存html到本地。
前端大佬给举荐的是一开始就要配置nginx ,强制不缓存html
location / { expires -1; add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; try_files $uri $uri/ @router; index index.html; }