解决 Vue 项目打包上线后客户端缓存的问题
由于重新打包后会导致对应的 js 和 css 文件 hash 值发生变化,客户端不刷新的话就会存在之前的文件找不到,导致报错的问题。
通过 build.sh 定义打包命令
#!/usr/bin/env bash # 更新当前时间戳
timestamp=`date '+%s'`
str="{ \"timestamp\": $timestamp }"
echo $str > "public/release.json" # 根据需要写 打包命令
# rm -rf dist
# rm -rf node_modules
# npm run build
每次上线前都会创建文件 <项目路径>/public/release.json 例如:
{ "timestamp": 1639550254 }
是一个当前的时间戳。
然后设置一个全局的路由守卫
import axios from 'axios';
let timestamp; const testRelease = () => {
let url = `/release.json?t=${Date.now()}`;
axios.get(url).then(res => {
if (res.status === 200) {
let lastTimestamp = timestamp; // 上次时间戳
timestamp = res.data.timestamp; // 当前时间戳
if (lastTimestamp && lastTimestamp !== timestamp) { // 时间戳不相同的话就重新加载页面
window.location.reload();
}
}
});
} const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes: [] // 根据业务定义路由
}); router.beforeEach(async function (to, from, next) {
testRelease(); // 每次切换路由都调用接口测试时间戳是否更新
next();
});
解决 Vue 项目打包上线后客户端缓存的问题的更多相关文章
- Vue项目打包发布后CSS中的背景图片不显示
相信有很多同学在学习vue的刚开始都遇到过项目打包发布后发现CSS中的背景图片不显示,具体如何解决只需要更改bind的配置即可 修改 build/utils.js 中的 generateLoaders ...
- vue项目打包本地后通过nginx解决跨域
前言 有时候我们打包好vue项目让后端人员部署项目时可能会有小插曲,为了不麻烦后端人员和避免尴尬,最好的办法就是在本地自己先测一下,而在本地运行打包后的项目会遇到接口跨域的问题.我平时经常用的方法就是 ...
- 解决Vue项目打包之后放到nginx下刷新就报错404的问题
最近跟着某机构的教学视频敲了一遍vue项目,但是在windows环境下部署的时候就懵逼了放到nginx下正常跑没问题,但是刷新之后就报404错误 前端项目构建vue 脚手架版本 是@vue/cli 4 ...
- vue项目打包上线发现 360 浏览器不兼容?
分享链接: 文档:解决vue 和 360 浏览器兼容问题.note链接:http://note.youdao.com/noteshare?id=41914c6dbb4238d765b26d59aa05 ...
- 解决vue项目打包后背景图片找不到的问题
在build->webpack.base.conf.js里添加一句代码: 具体位置在module->rules下 publicPath:"../../",
- vue项目打包上线时的配置操作
vue的图片路径,和背景图片路径打包后错误解决 2017-12-11 16:00 by muamaker, 7037 阅读, 0 评论, 收藏, 编辑 最近在研究vue,老实的按照官网提供的,搭建的了 ...
- 解决vue项目打包之后出现源代码的问题
config/index.js 页面找到productionSourceMap:ture 改为 productionSourceMap:false
- vue项目打包后运行报错400如何解决
昨天一个Vue项目打包后,今天测试,发现无论localhost还是服务器上都运行不了,报错如下: Failed to load resource: the server responded with ...
- Vue项目打包后背景图片路径错误
vue项目打包之后背景图片出错的解决方案如下: 1,找到 config->index.js里面,如下修改 默认配置: env: require('./prod.env'), index: pat ...
- vue项目部署上线
前言 今天把自己写的demo登录写完了,就想着试着走一下部署上线的流程.参考了很多的文档,终于成功进行了部署.在这里将服务器的搭建和vue项目的 部署上线进行整理(都是基础的知识,希望对大家有帮助.对 ...
随机推荐
- UML各类基础知识总结
1.UML关系 泛化(也就是我们传统意义上的继承关系) 子类继承父类,关系用extend关键字标识: 关联 可以说是一种属于关系,图中即说的是PhoneNumber类属于Master类,同时,除了一对 ...
- MySQL常用语句(经常容易忘记)
MySQL常用语句 一.连接MySQL 格式: mysql -h <主机地址> -u<用户名> -p<用户密码> --port=<端口号> 1.例1:连 ...
- 【Java】JDBC Part1 数据库连接的演变
环境搭建 使用Maven工程的依赖项,如果普通工程就点注释的地址下载jar包即可 <dependencies> <!-- https://mvnrepository.com/arti ...
- 【Java-GUI】12 Swing07 JList
列表和下拉选择: package cn.dzz; import javax.swing.*; import javax.swing.border.EtchedBorder; import javax. ...
- 【转载】 NLP如此钟情英语研究真的好吗?
转载自: https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_965090611243366 ...
- 人类社会学:“重男轻女"思潮的比重,从多孩男女性别比角度思考
参考资料: https://baijiahao.baidu.com/s?id=1780697594797038227 https://mbd.baidu.com/newspage/data/video ...
- AI大模型 —— 国产大模型 —— 华为大模型
有这么一句话,那就是AI大模型分两种,一种是大模型:另一种是华为大模型. 如果从技术角度来分析,华为的技术不论是在软件还是硬件都比国外的大公司差距极大,甚至有些技术评论者认为华为的软硬件技术至少落后2 ...
- windows中好用的工具
windows中好用的工具和浏览器插件 一.geek卸载软件 软件介绍 geek一款非常简洁的卸载软件,并且非常强大,强大到可以清理注册表,用过的都说好. 下载地址: https://geekunin ...
- Atcoder ABC298 D-F
Atcoder ABC298 D-F D - Writing a Numeral 链接: D - Writing a Numeral (atcoder.jp) 简要题意: 问题陈述 我们有一个字符串 ...
- Kolmogorov-Smirnov 检验 + k 样本 Anderson-Darling 检验 + 贝叶斯估计 + 期望方差
KS 检验是基于 Kolmogorov distribution,指的是 \[K=\sup_{t\in[0,1]}\left\lvert B(t)\right\rvert \] 式中 \(B(t)\) ...