近期在發(fā)版驗(yàn)證時(shí)遇到一個(gè)問(wèn)題舌仍,微信公眾號(hào)登入后頁(yè)面顯示的是老的铃拇,強(qiáng)制刷新后盹牧,再退出重新登入俩垃,仍然顯示的是老的頁(yè)面励幼;
經(jīng)過(guò)一番查找得到了解決方案:
(1)公眾號(hào)放的菜單地址后加 ?version=1.0.0 每次更新頁(yè)面則更新菜單;
但是這樣每次發(fā)版還得修改公眾號(hào)的菜單口柳,多一步很不方便苹粟;
于是和前端一塊嘗試尋找到另一中解決方案:
(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" />
這樣就徹底解決了緩存問(wèn)題;
但是注意啄清,往往遇到此問(wèn)題時(shí)六水,已經(jīng)緩存了沒(méi)有加緩存策略的html文件,需要清除掉緩存辣卒,加載新的帶緩存策略的html文件掷贾,將來(lái)才會(huì)實(shí)時(shí)更新;但是也不能讓用戶每個(gè)都清理緩存叭倜!想帅;
于是就要配合第一種解決方法,在菜單鏈接后面加參數(shù)啡莉,這樣用戶側(cè)會(huì)重新load新版本的html(微信菜單設(shè)置發(fā)布后港准,有將近10分鐘的延時(shí)),這樣配合使用就完美解決了我們的問(wèn)題咧欣;
期間多次嘗試發(fā)現(xiàn)浅缸,微信的緩存策略和頁(yè)面地址的后綴參數(shù)相關(guān),使用相同的后綴魄咕,在不設(shè)置緩存策略下衩椒,就能回到對(duì)應(yīng)的版本,很強(qiáng)大哮兰,也很雞肋