位置: IT常识 - 正文

Vue项目线上发布,都有缓存不生效怎么办?(vue项目上线教程)

编辑:rootadmin
Vue项目线上发布,都有缓存不生效怎么办?

推荐整理分享Vue项目线上发布,都有缓存不生效怎么办?(vue项目上线教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue怎么发布上线,vue怎么发布上线,vue项目怎么发布到服务器,vue项目上线教程,vue项目上线教程,vue发布app,vue 项目发布,vue项目线上部署,内容如对您有帮助,希望把文章链接给更多的朋友!

前言:

每次把修改后的vue项目build构建的打包文件丢到线上服务器后,发现还是上一次的效果,新修改的不起效,每次都需要ctrl+F5强制刷新页面,用户太多不可能让所有人每次都这样去折腾,为啥?

vue cli不是给静态资源css、js、img自动加了哈希么,怎么还会有缓存?

经过多方调试,发现是因为入口文件index.html需要在服务器端设置禁止缓存。

Vue项目线上发布,都有缓存不生效怎么办?(vue项目上线教程)

解决缓存问题可以分两步走:

①nginx配置index不缓存

②代码加入版本更新检测强制刷新

解决方案一:(Linux服务器设置nginx禁用html缓存) 

只配置了不缓存html和htm,js,css等文件没有做处理,是因为我们前端编译发布代码时,如果某个js或css有更新,会自动在文件名上加时间戳、哈希值,这样一发新版时,只要客户端请求了新版的html,就会自动找到新的js、css,没有更新的js、css还会继续用缓存,这样既不会太大的影响网页的访问速度,也能保证更新的代码不走缓存。

禁止index.html

server { listen 80; server_name test.exmaple.cn; location / { if ($request_filename ~* .*\.(?:htm|html)$) ## 配置页面不缓存html和htm结尾的文件 { add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; } root /web/; index index.html; try_files $uri $uri/ /index.html =404; }}

暴力禁止所有静态资源缓存

location ~.*\.(js|css|html|png|jpg)${ add_header Cache-Control no-cache;} 解决方案二:(Vue-cli代码控制)

1.在public静态目录下新建version.json每次发版更改里面的版本号 

{ "version": "0.0.1"}

2.在src中新建 libs/versionUpdate.js文件

import axios from 'axios'const isNewVersion = () => { let url = `//${window.location.host}/version.json?t=${new Date().getTime()}` axios.get(url).then(res => { if (res.status === 200) { let vueVersion = res.data.version || '1.0.0' let localVueVersion = localStorage.getItem('vueVersion') localStorage.setItem('vueVersion', vueVersion) if (localVueVersion && localVueVersion != vueVersion) { alert('检测到新版本,请点击确认刷新页面哦') window.location.reload(true) return } } })}export default { isNewVersion}

3.在全局路由拦截中写,只要每次版本号不同就重新加载页面配合第一步就可以清楚浏览器缓存

import versionTood from '@/libs/versionUpdate'router.beforeEach(( to, from, next ) => { //判断当前代码版本是否与服务器中代码版本一致,如不一致则刷新页面获取最新 versionTood.isNewVersion();}
本文链接地址:https://www.jiuchutong.com/zhishi/287165.html 转载请保留说明!

上一篇:马尔堡峡湾鸟瞰图,新西兰 (© Mathias Ortmann/Getty Images)(马尔堡酒庄)

下一篇:vue集成海康h5player实现播放(h5调用海康摄像头)

  • 出口退税账务怎么做账
  • 开诊所会计如何做账
  • 附加税减免税额不能大于本期应纳税额怎么办
  • 坏账准备和信用账户区别
  • 员工团体意外保险怎么报销
  • 已认证未抵扣的进项怎么填写
  • 资产减值损失结转
  • 公司收内部职工停车费如何确认收入?
  • 员工领取产假工资怎么算
  • 用库存物资抵货怎么做账
  • 研发样机是什么
  • 金税是干什么的
  • 天猫运费险是按照每一单结算的吗
  • 简易征收企业所得税几个点
  • 进项发票认证抵扣时间有限制吗
  • 未分配利润是什么类科目
  • 制造业增值税加计抵减
  • 贷款损失准备如何提取
  • 有限合伙企业需要法人吗
  • 水土保持补偿费是一次性征收吗
  • 财务考核指标表
  • 计算土地增值税时增值额的扣除项目包括
  • php中字符串函数
  • 供热企业收取采暖费标准
  • 专项资金下达期限
  • hpptd.exe
  • win7系统修改
  • 调入的无形资产记入哪里
  • 车保险理赔的钱多久到账
  • uni-app实例教程
  • 限售股是好是坏
  • 外经证逾期未核实怎么办
  • 行政单位捐赠收入属于什么收入
  • 成本费用科目包括
  • 特定业务计算的应纳税所得额是指
  • HTML与PyCharm
  • vue国际化占位符
  • python进行数学建模
  • 锁定vlookup快捷键
  • 财政贴息会计处理怎么理解
  • okhttp源码
  • 怎么把其他应收款的转到其他应付款
  • 证券公司代理发行
  • 税务局退还的三种税费
  • 公司购买led屏幕做到什么费用
  • 金税盘减免税款月末如何结转
  • 新准则委托代建会计处理
  • SQL server 2008中的数据库能否只包含数据文件
  • 开具定额发票应如何做账?
  • 生产经营个人所得税税率表
  • 购买固定资产用什么凭证
  • 发行债券支付的发行费用计入哪里
  • 母子公司可以合并吗
  • 承兑汇票的贴现利息
  • 产品成本计算中最基本的方法是
  • 现金日记账的登记规范及要求
  • 税控盘费和服务费一样吗
  • 微众银行贷款到私账吗
  • 进项税额转出忘记结转
  • 公司如何注销营业执照
  • 数据库的常用语句
  • centos安装编译环境
  • xp系统怎么卸载程序
  • realmon.exe - realmon是什么进程 有什么用
  • fnthex32.dll
  • Windows正在启动卡死
  • yum could not resolve host
  • 鼠标的指针
  • win7系统安装程序正在启动一直转圈圈
  • 置顶在线
  • JavaScript中的变量名不区分大小写
  • u盘通过什么读写数据
  • 基于stm32的100个毕业设计
  • nodejs libuv
  • node.js使用教程
  • js入门基础教程
  • bootstrap steps
  • win7怎么装python3.8
  • 211学生占全国比例
  • 山东地方税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设