帮助中心

这里有最新的使用文档和教程

< 返回

nginx服务器配置客户端浏览器缓存清除

2023-05-19 作者:众归云 阅读量:1212

nginx服务器配置客户端浏览器缓存清除cache-control

 

在开发人员的眼中没有bug,只不过是你不会用罢了。。。

现情况公司内部运作系统,每次迭代都会有用户出现新增的功能没有显示的情况,那么前端项目基于angular1.5.8+gulp做了文件加版本号处理,唯独index.html并没有添加版本号处理,大部分js、css都是在index.html内引入的。

 

在gulpfile内给js、html都增加了版本号处理

.pipe($.replace('.js',".js?v="+moment().format('YYMMDDHHmm')))

.pipe($.replace('.html',".html?v="+moment().format('YYMMDDHHmm')))

这边是nginx服务器配置

location / {

        

        ##客户端缓存7天,有修改向服务器请求最新文件

        add_header Cache-Control max-age=604800;

       

    }

测试觉得并没有问题啊,开发人员都没问题,可以在缓存期间,即使有代码更新,按F5刷新下就会向nginx服务器发送请求,获取是否有文件更新,通过Last-Modified判断吧?有更新则直接向服务器拉取最新文件,没有更新则使用浏览器缓存。为啥还是会有部分人员出现页面没有显示出最新修改的模块呢,比如这次迭代只是在某个页面增加了一个表单,但是有的人员却并没有显示出这次增加的表单。。。后来直接让他们ctrl+F5强制刷新,才显示出来。百思不得其解。。有没有办法可以自动清除客户端的浏览器缓存呢?注:客户端都是用的chrome浏览器

 

nginx服务器配置如下修改后有效吗?有待查证。。。

location / {

        ##私有缓存,不能被共有缓存代理服务器缓存,可被用户的代理缓存如浏览器

        add_header Cache-Control private;

        ##客户端缓存7天,有修改向服务器请求最新文件

        add_header Cache-Control max-age=604800;

        ##告诉浏览器,你这必须再次验证检查信息是否过期, 返回的代号就不是200而是304了

        add_header Cache-Control must-revalidate;

    }

众归云 - 12 年深耕海外 IDC 高端资源