账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nginx服务器配置客户端浏览器缓存清除cache-control
    • 2018-01-11 00:00
    • 11
    26
    0

    在开发人员的眼中没有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;
        }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 孤星 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部