由于重新打包后会导致对应的 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 项目打包上线后客户端缓存的问题的更多相关文章

  1. Vue项目打包发布后CSS中的背景图片不显示

    相信有很多同学在学习vue的刚开始都遇到过项目打包发布后发现CSS中的背景图片不显示,具体如何解决只需要更改bind的配置即可 修改 build/utils.js 中的 generateLoaders ...

  2. vue项目打包本地后通过nginx解决跨域

    前言 有时候我们打包好vue项目让后端人员部署项目时可能会有小插曲,为了不麻烦后端人员和避免尴尬,最好的办法就是在本地自己先测一下,而在本地运行打包后的项目会遇到接口跨域的问题.我平时经常用的方法就是 ...

  3. 解决Vue项目打包之后放到nginx下刷新就报错404的问题

    最近跟着某机构的教学视频敲了一遍vue项目,但是在windows环境下部署的时候就懵逼了放到nginx下正常跑没问题,但是刷新之后就报404错误 前端项目构建vue 脚手架版本 是@vue/cli 4 ...

  4. vue项目打包上线发现 360 浏览器不兼容?

    分享链接: 文档:解决vue 和 360 浏览器兼容问题.note链接:http://note.youdao.com/noteshare?id=41914c6dbb4238d765b26d59aa05 ...

  5. 解决vue项目打包后背景图片找不到的问题

    在build->webpack.base.conf.js里添加一句代码: 具体位置在module->rules下 publicPath:"../../",

  6. vue项目打包上线时的配置操作

    vue的图片路径,和背景图片路径打包后错误解决 2017-12-11 16:00 by muamaker, 7037 阅读, 0 评论, 收藏, 编辑 最近在研究vue,老实的按照官网提供的,搭建的了 ...

  7. 解决vue项目打包之后出现源代码的问题

    config/index.js 页面找到productionSourceMap:ture 改为 productionSourceMap:false

  8. vue项目打包后运行报错400如何解决

    昨天一个Vue项目打包后,今天测试,发现无论localhost还是服务器上都运行不了,报错如下: Failed to load resource: the server responded with ...

  9. Vue项目打包后背景图片路径错误

    vue项目打包之后背景图片出错的解决方案如下: 1,找到 config->index.js里面,如下修改 默认配置: env: require('./prod.env'), index: pat ...

  10. vue项目部署上线

    前言 今天把自己写的demo登录写完了,就想着试着走一下部署上线的流程.参考了很多的文档,终于成功进行了部署.在这里将服务器的搭建和vue项目的 部署上线进行整理(都是基础的知识,希望对大家有帮助.对 ...

随机推荐

  1. UML各类基础知识总结

    1.UML关系 泛化(也就是我们传统意义上的继承关系) 子类继承父类,关系用extend关键字标识: 关联 可以说是一种属于关系,图中即说的是PhoneNumber类属于Master类,同时,除了一对 ...

  2. MySQL常用语句(经常容易忘记)

    MySQL常用语句 一.连接MySQL 格式: mysql -h <主机地址> -u<用户名> -p<用户密码> --port=<端口号> 1.例1:连 ...

  3. 【Java】JDBC Part1 数据库连接的演变

    环境搭建 使用Maven工程的依赖项,如果普通工程就点注释的地址下载jar包即可 <dependencies> <!-- https://mvnrepository.com/arti ...

  4. 【Java-GUI】12 Swing07 JList

    列表和下拉选择: package cn.dzz; import javax.swing.*; import javax.swing.border.EtchedBorder; import javax. ...

  5. 【转载】 NLP如此钟情英语研究真的好吗?

    转载自: https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_965090611243366 ...

  6. 人类社会学:“重男轻女"思潮的比重,从多孩男女性别比角度思考

    参考资料: https://baijiahao.baidu.com/s?id=1780697594797038227 https://mbd.baidu.com/newspage/data/video ...

  7. AI大模型 —— 国产大模型 —— 华为大模型

    有这么一句话,那就是AI大模型分两种,一种是大模型:另一种是华为大模型. 如果从技术角度来分析,华为的技术不论是在软件还是硬件都比国外的大公司差距极大,甚至有些技术评论者认为华为的软硬件技术至少落后2 ...

  8. windows中好用的工具

    windows中好用的工具和浏览器插件 一.geek卸载软件 软件介绍 geek一款非常简洁的卸载软件,并且非常强大,强大到可以清理注册表,用过的都说好. 下载地址: https://geekunin ...

  9. Atcoder ABC298 D-F

    Atcoder ABC298 D-F D - Writing a Numeral 链接: D - Writing a Numeral (atcoder.jp) 简要题意: 问题陈述 我们有一个字符串 ...

  10. Kolmogorov-Smirnov 检验 + k 样本 Anderson-Darling 检验 + 贝叶斯估计 + 期望方差

    KS 检验是基于 Kolmogorov distribution,指的是 \[K=\sup_{t\in[0,1]}\left\lvert B(t)\right\rvert \] 式中 \(B(t)\) ...