URCloud

/ 0评 / 0/ 最后更新:2021-12-09
微信h5(单页应用)不缓存html,缓存js,css等资源

需求场景

在单页应用中,只有一个html页面,网站的大部分css,js等资源引用都写在这个html中,当更新css,js的随机数然后发布时,由于客户端缓存了html,并不能及时更新。

解决方案

    location / {
        try_files $uri $uri/ /index.html;
        if ($uri ~* .*\.(?:htm|html)$) {
            add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
        }
        if ($uri ~* .*\.(?:js|css|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$) {
            expires 7d;
        }
    }

微信环境解决方案

微信环境中html的缓存也是一直遭人诟病的。在普通浏览器中,只需要将html后面也加一个随机数,就可以不缓存html,或者在meta标签中添加标识,又或者如上的nginx配置。而在微信浏览器中这些方法都是无效的。

 if ($uri ~* .*\.(?:htm|html)$) {
            add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
            add_header Last-Modified $date_gmt;
        }
0

Leave a Reply

Your email address will not be published.