微信对伪静态html缓存
时间:
阅读:141
微信对伪静态html缓存
最佳回答
近期在发版验证时遇到一个问题,微信公众号登入后页面显示的是老的,强制刷新后,再退出重新登入,仍然显示的是老的页面;
经过一番查找得到了解决方案:
(1)公众号放的菜单地址后加 ?version=1.0.0 每次更新页面则更新菜单;
但是这样每次发版还得修改公众号的菜单,多一步很不方便;
于是和前端一块尝试寻找到另一中解决方案:
(2)前端在html的header中加入缓存策略
<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" />
<meta http-equiv="Cache" content="no-cache" />
这样就彻底解决了缓存问题;
但是注意,往往遇到此问题时,已经缓存了没有加缓存策略的html文件,需要清除掉缓存,加载新的带缓存策略的html文件,将来才会实时更新;但是也不能让用户每个都清理缓存啊;
于是就要配合第一种解决方法,在菜单链接后面加参数,这样用户侧会重新load新版本的html(微信菜单设置发布后,有将近10分钟的延时),这样配合使用就完美解决了我们的问题;
期间多次尝试发现,微信的缓存策略和页面地址的后缀参数相关,使用相同的后缀,在不设置缓存策略下,就能回到对应的版本,很强大,也很鸡肋
经过一番查找得到了解决方案:
(1)公众号放的菜单地址后加 ?version=1.0.0 每次更新页面则更新菜单;
但是这样每次发版还得修改公众号的菜单,多一步很不方便;
于是和前端一块尝试寻找到另一中解决方案:
(2)前端在html的header中加入缓存策略
<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" />
<meta http-equiv="Cache" content="no-cache" />
这样就彻底解决了缓存问题;
但是注意,往往遇到此问题时,已经缓存了没有加缓存策略的html文件,需要清除掉缓存,加载新的带缓存策略的html文件,将来才会实时更新;但是也不能让用户每个都清理缓存啊;
于是就要配合第一种解决方法,在菜单链接后面加参数,这样用户侧会重新load新版本的html(微信菜单设置发布后,有将近10分钟的延时),这样配合使用就完美解决了我们的问题;
期间多次尝试发现,微信的缓存策略和页面地址的后缀参数相关,使用相同的后缀,在不设置缓存策略下,就能回到对应的版本,很强大,也很鸡肋
最新回答共有2条回答
-
清风若雨
回复首先,引用css和js的时候,要加上一个参数,例如版本号或者修改的日期,如
<script type="text/javascript" src="cszchen.js?v=20151108"></script>
那么,如果今天我修改了这个js文件,就要改一下参数v:
<script type="text/javascript" src="cszchen.js?v=20151109"></script>
这样,浏览器就会重新加载。