独书先生 Menu

Viewing all items for tag nginx

如何清除微信网页缓存nginx配置 | 终极解决方案亲测有效

问题

微信为了提高自身的性能,对微信网页进行了缓存,且普通方法无法及时清除,项目更新后,微信无法及时更新网页内容

解决方案:

更改服务器配置,强制不缓存入口文件,通常为网站首页(index.html),其他静态正常缓存,再针对首页中引入的资源文件(js/css)采用修改文件名及文件引入链接强制获取新的文件避免缓存。

操作步骤:

  1. 在nginx中修改配置文件(nginx.conf),在所有的网站首页匹配的location /下增加#### kill cache的部分,如下:
location / {
    root   /mnt/dat1/test/tes-app;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html;
    #### kill cache
    add_header Last-Modified $date_gmt;
    add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
    if_modified_since off;
    expires off;
    etag off;
}
  1. 修改index.html中的资源引入链接,分两种情况:
    • 一是前端框架已经做好了打包后的文件名自动携带hash值,且引入链接也自动修改了,这种情况无需手动再修改文件名
    • 二是部分系统采用的原始引入方式开发,没有自动打包系统的,需要自己手动更改文件名和引入链接,如下:
<script type="text/javascript" src="js/login.js" ></script>

更改为

<script type="text/javascript" src="js/login_01.js" ></script>

且login.js重命名为login_01.js即可