上面说了,APP内嵌H5是很常见的,但是各个app提供的webview性能不尽相同,在开发的时候遇到了一个非常棘手的缓存问题。APP启动时会加载我们商城项目的H5代码,然后在本地缓存index.html文件。记录下问题,说明H5项目打包上线后,由于静态资源js和css文件名后面带了一个hash值,所以webpack包中包含了这个,也是为了防止缓存。但是app启动后,缓存的html请求还是之前版本包的静态资源,导致index.a878n.jsnotfound404,页面空白。-----我们的H5项目打包上线后,服务器上的旧版本代码会被清除。解决方案我们一开始在html中添加了一个随机数,即当app加载到html中时,在url后面添加了一个随机数,但是发现webview的html缓存导致我们的js修改不了被更新。最后的解决方案是在域名后面加上时间戳,在app端加载项目的时候升级app。为了避免这种问题,需要在第一次启动项目的时候给html中的url加上一个随机数,这样webview就不会在本地缓存html了。前端大佬推荐的是一开始就配置nginx,强制不缓存htmllocation/{expires-1;add_header'Cache-Control''no-store,no-cache,must-revalidate,proxy-revalidate,max-age=0';try_files$uri$uri/@router;索引index.html;}
