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

问题原因: 浏览器问题

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

js 复制代码
{ "version": "1722240835844" }

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

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)

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

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

  1. 引入变量
js 复制代码
    const path = require("path");
    const fs = require("fs");
  1. 生成版本代码
js 复制代码
	// 如果当前时打包行为 生成最新版本号
	if (command == "build") {
	    //打包时生成版本号
	    let version = {
	      version: JSON.stringify(new Date().getTime()),
	    };
	    fs.writeFile("./public/version.json", JSON.stringify(version), () => {
	      console.log("新版本号生成成功", version);
	    });
  	}
相关推荐
AKA__老方丈2 小时前
vue-cropper图片裁剪、旋转、缩放、实时预览
前端·vue.js
梦6503 小时前
Vue 单页面应用 (SPA) 与 多页面应用 (MPA) 对比
前端·javascript·vue.js
清铎3 小时前
大模型训练_week3_day15_Llama概念_《穷途末路》
前端·javascript·人工智能·深度学习·自然语言处理·easyui
短剑重铸之日3 小时前
《7天学会Redis》特别篇: Redis分布式锁
java·redis·分布式·后端·缓存·redission·看门狗机制
岛泪4 小时前
把 el-cascader 的 options 平铺为一维数组(只要叶子节点)
前端·javascript·vue.js
小北方城市网4 小时前
SpringBoot 全局异常处理与接口规范实战:打造健壮可维护接口
java·spring boot·redis·后端·python·spring·缓存
Kiyra4 小时前
阅读 Netty 源码关于 NioEventLoop 和 Channel 初始化部分的思考
运维·服务器·前端
冰暮流星5 小时前
javascript的switch语句介绍
java·前端·javascript
不想写bug呀5 小时前
Redis基础知识及五种类型操作
数据库·redis·缓存
做科研的周师兄5 小时前
【MATLAB 实战】|多波段栅格数据提取部分波段均值——批量处理(NoData 修正 + 地理信息保真)_后附完整代码
前端·算法·机器学习·matlab·均值算法·分类·数据挖掘