位置: 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调用海康摄像头)

  • 税收饶让抵免的概念及特点
  • 使用权资产和租赁负债的计税基础
  • 递延所得税资产和负债怎么理解
  • 员工团体意外保险怎么报销
  • 认缴注册资本的风险
  • 固定资产后续支出
  • 土地款抵扣增值税申报
  • 有未弥补亏损本季度有盈利要计提递延所得税资产吗?
  • 应交税费是什么科目借贷方向
  • 普通发票电子发票没有章
  • 供应商不给货款怎么办
  • 2021申请一般纳税人公司的条件
  • 建筑业分包抵扣
  • 企业购车可以一次性扣除吗
  • 3%增值税专用发票可以抵扣多少
  • 合并报表收费
  • 存货如何处理才能避税
  • 管理费用职工福利费
  • 未实缴出资的股权转让账务处理
  • 发票打印注意什么
  • 企业法人的工资没有实收可以退税吗
  • 未分配利润为什么不分配
  • 视同销售的企业所得税汇缴表怎么填列?
  • 1697511215
  • 工程服务的采购合同范本
  • 苹果最强机型
  • 土地长期租赁最长多长时间
  • rtlrack.exe - rtlrack是什么进程 有什么用
  • 小米无线路由器internet黄灯
  • php数组函数题目
  • 农产品进项税额转出会计分录
  • php静态函数
  • 接受专利投资会亏本吗
  • 零售业如何盈利
  • 纽格尔官网
  • 进项税已认证未缴纳
  • vue3.0实战项目
  • 预付账款年底怎样结转
  • python一元二次方程求根
  • 印花税怎么计算公式
  • 增值税普通发票查询
  • mysql5.7版本安装教程
  • 缴纳残保金工资是实发工资还是应发工资
  • 物流公司卖车合法么
  • 持有至到期投资减值准备
  • 注册资本一般为多少
  • 合并报表非同控为什么调公允
  • 进项税怎么做账务处理
  • 进项票取得晚了怎么抵扣
  • 折现率的选择主要是根据什么来判断
  • innodb数据和索引文件
  • mysql5.7配置文件my.ini
  • 机箱前面板是哪里
  • 三星笔记是干什么用的
  • 如何修复win7系统文件损坏
  • WIN10开启高性能模式
  • xp系统的启动快捷键
  • win10老是弹窗广告
  • ubuntu20录屏
  • win7系统解决数字签名问题
  • cocos2dx node
  • glimp使用方法
  • android获取json数据
  • bat脚本ftp上传文件
  • 超出div的部分隐藏
  • vue异步加载第三方库
  • unity3d快捷键
  • qq登录失败是怎么回事
  • eclipse安转
  • hbase shell split
  • python xml.dom.minidom模块生成xml
  • js原型作用
  • android打包v1v2
  • javascript面向对象编程指南第三版
  • 税务局发票邮寄回来怎么读入?
  • 关于出口退税的问题
  • 国家税务总局辽宁省税务局
  • 金三申报系统里面怎么申报社保?
  • 国税能级管理(国税局等级制度)
  • 苏州国税电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设