这里有最新的使用文档和教程
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;
}