开发微信公共号时总是会遇到要修改公共号里自定义菜单的地址,修改过后有些手机会重新请求错误(上次)的地址。
针对这个问题,我采用重新关注公共号、清楚公共号内容、清楚浏览器缓存的方式,前两种均不得解决,第三种不能推广使用。
经过研究发现微信浏览器确实是在webvIEw的上层做的缓存:就是如果请求过了这个地址,就会存在本地,之后不取线上了。
解决方案是 在调试阶段或者频繁更新的页面加入以下头信息
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
这样微信浏览器对这个页面将会一直上线拉取,稳定性还在测试中。
http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。
1、Expires(期限)
说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。
2、Pragma(cache模式)
说明:是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出
3、Cache-Control 清除缓存(再访问这个网站要重新下载!)
有兴趣的童鞋还可以试试路由重定向、Microsoft URL Rewrite Module等服务器端的方法。