当前位置: 代码网 > 服务器>服务器>Nginx > 解决nginx服务器上发布的新版本代码总需要清除浏览器缓存问题

解决nginx服务器上发布的新版本代码总需要清除浏览器缓存问题

2024年05月19日 Nginx 我要评论
问题场景代码运行环境:nginx现象:发布新版本代码时浏览器总是有上次缓存结果:页面显示混乱、更新的功能还是上个版本等一系列问题原因浏览器缓存解决方法1. 用户自行清理浏览器缓存优点:清除浏览器缓存后

问题场景

  • 代码运行环境:nginx
  • 现象:发布新版本代码时浏览器总是有上次缓存
  • 结果:页面显示混乱、更新的功能还是上个版本等一系列问题

原因

  • 浏览器缓存

解决方法

1. 用户自行清理浏览器缓存

  • 优点:清除浏览器缓存后可达到效果。
  • 缺点:影响用户体验

2. 使用禁用缓存标签,实现禁用浏览器缓存

  • 优点:可达到效果。
  • 缺点:每次请求页面都要重新请求,我们还是希望有缓存的
   <meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate" />
   <meta http-equiv="cache" content="no-cache">
   <meta http-equiv="pragma" content="no-cache" />
   <meta http-equiv="expires" content="0" />

3. 为js和css文件添加版本号

  • 优点:可达到效果。
  • 缺点:给所有的静态资源都添加版本号参数,这个参数可以是时间戳或者随机数。

处理方式的代码如下:

   <link rel="stylesheet" type="text/css" href="${pagecontext.request.contextpath}/static/plugins/layui-v2.5.5/layui/css/layui.css?v=20200110052406" rel="external nofollow" >
   <link rel="stylesheet" type="text/css" href="${pagecontext.request.contextpath}/static/css/style.css?v=20200110052406" rel="external nofollow" >
   <link rel="stylesheet" type="text/css" href="${pagecontext.request.contextpath}/static/css/addstyle.css?v=20200110052406" rel="external nofollow" >
   <link rel="stylesheet" type="text/css" href="${pagecontext.request.contextpath}/static/css/template/addstyle.css?v=20200110052406" rel="external nofollow" >

4. 修改nginx 配置

(满足以下条件后有缓存可以修改nginx 配置文件)

背景:

1、使用nginx做代理

2、使用webpack等打包出一个唯一的入口文件index.html,或者其他方式的入口html文件

3、入口html文件中js已经使用hash后缀方式加载

=缺点:需要前端人员会配置nginx=

location ~ .*\.(htm|html)?$ {
 #原来这样设置的不管用
 #expires -1;
 #现在改为,增加缓存
 add_header cache-control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
 access_log on;
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com