js和css刷新缓存不会更新问题解决

最近开发继承计算系统,经常会遇到客户端刷新、强制刷新以后js和css缓存没有更新的情况,导致开发端和测试端的代码不一致。有的 bug 开发端已经解决了,但是测试那边还是处问题。

我已经使用使用了动态给js代码和css代码加参数了,但是有时候还是出这个问题。

<script type="text/javascript" src="main.js?t=201809251408"></script>

后来查到是因为有时候 浏览器或者 cdn 会忽略动态参数,缓存整个 js 文件,强刷也不会更新,所以我把方案改为动态生成新的文件名。

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

问题终于得以解决, 优秀!

PS. 增加了漂亮的代码语法高亮,嗨森 ^_^ !

对了,如果是面对微信中打开的网页,比如公众号菜单打开或者微信中网页链接打开,微信会缓存index.html,这个时候,需要在nginx中设置,取消index.html的缓存。

location index\.html$ {
    add_header Cache-Control no-cache;
    add_header Cache-Control private;
    expires -1;
    access_log off;
}

2018-12-24 04:57

留言