当前位置: 首页 > news >正文

前端发版(发包)缓存,需要强制刷新问题处理

问题原因: 浏览器问题

一、创建初始版本文件(public/version.json)

{ "version": "1722240835844" }

二、设置版本判断(version.js)

import axios from "axios";const isNewVersion = () => {let baseUrl = `/version.json?t=${new Date().getTime()}`;axios.get(baseUrl).then((res) => {if (res.status === 200) {let webappVersion = res.data.version;//当前项目发布的版本let localWebappVersion = localStorage.getItem("webappVersion");//缓存中的版本if (localWebappVersion && localWebappVersion != webappVersion) {// 如果没有缓存版本 或者 缓存版本与当前项目发布版本不一致时 强行刷新localStorage.setItem("webappVersion", webappVersion);window.location.reload();return;} else {localStorage.setItem("webappVersion", webappVersion);}}});
};
export default isNewVersion;

三、设置全局监听(main.js. permission.js)

router.beforeEach((to, from, next) => {//判断当前代码版本是否与服务器中代码版本一致,如不一致则刷新页面获取最新isNewVersion(); 
});

四、生成打包版本(vite.config.js)

  1. 引入变量
    const path = require("path");const fs = require("fs");
  1. 生成版本代码
	// 如果当前时打包行为 生成最新版本号if (command == "build") {//打包时生成版本号let version = {version: JSON.stringify(new Date().getTime()),};fs.writeFile("./public/version.json", JSON.stringify(version), () => {console.log("新版本号生成成功", version);});}
http://www.lryc.cn/news/416542.html

相关文章:

  • 洛谷练习(8.4/8.5)
  • DLMS/COSEM中的信息安全:加密算法(下)1
  • ES6中的Promise、async、await,超详细讲解!
  • Modbus poll和Modbus Mbslave的使用
  • 树莓集团的全球化征程:数字媒体产业的本土与国际布局
  • LeetCode面试150——274H指数
  • 【Linux】Linux重定向指南:探索输出重定向与追加重定向的奥秘!
  • Spring AI -快速开发ChatGPT应用
  • Modern C++ 智能指针
  • Python的100道经典练习题,每日一练,必成大神!!!
  • 代码回滚命令
  • [ASIS 2019]Unicorn shop1
  • LangChain与泛型编程:探索代码生成的新维度
  • day25
  • 红黑树的概念和模拟实现[C++]
  • 网络安全应急响应概述
  • 【C++】链表操作技巧综合:重排链表(带你理顺链表的做题思路)
  • 行为型设计模式2:观察者/职责链/中介者/访问者
  • 叛逆,批判
  • Linux 命令,mkdir说明与使用
  • 24. 两两交换链表中的节点(Java)
  • linux虚拟机设置固定ip
  • mysql问题解决
  • 类和对象(下)C++
  • 常用在线 Webshell 查杀工具推荐
  • RPC远程调用框架Dubbo
  • 基于STM32的智能灌溉系统
  • Datawhale AI 夏令营 Task3(半成品,仍在学习理解
  • 细腻呵护静音生活缓冲器,家具中的隐形侍者
  • 【MATLAB源码-第243期】基于simulink的CUK斩波电路仿真,输出各节点波形。