Vue項(xiàng)目打包部署后瀏覽器自動(dòng)清除緩存問題的解決方法
一、報(bào)錯(cuò)如下:
每次build打包部署到服務(wù)器上時(shí),偶爾會(huì)出現(xiàn)前端資源文件不能及時(shí)更新到最新,瀏覽器存在緩存問題,這時(shí)在當(dāng)前頁面進(jìn)行按鈕點(diǎn)擊等事件處理時(shí),控制臺(tái)報(bào)錯(cuò)chunk load error,如下顯示:

原因:通過查看當(dāng)前sources里的文件,可以發(fā)現(xiàn):控制臺(tái)報(bào)錯(cuò)提示中所請(qǐng)求的js文件哈希值跟sources緩存的文件哈希值并不一樣,說明 當(dāng)前頁面請(qǐng)求了緩存,然而由于資源文件被更新 導(dǎo)致找不到 出現(xiàn)404的情況。
直接解決辦法:清除瀏覽器緩存。(但是每次部署 都要讓用戶重新清一次緩存不是很友好)下面通過其他方式解決這個(gè)問題。
二、解決:
1、在index.html入口文件處設(shè)置meta標(biāo)簽,清除頁面緩存。

<meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate"> <meta http-equiv="expires" content="0">
2、vue.config.js 配置js、css打包配置,在css、js打包文件添加版本號(hào)時(shí)間戳,區(qū)別版本
const path = require('path')
const timeStamp= new Date().getTime()
const isPro = process.env.NODE_ENV === 'production'
module.exports = {
configureWebpack: {
output: {
filename: `js/[name].js?v=${timeStamp}`,
chunkFilename: `js/[name].js?v=${timeStamp}`,
},
},
css: {
// 輸出重構(gòu) 打包編譯后的css文件名稱,添加時(shí)間戳
extract: {
filename: `css/[name].${timeStamp}.css`,
chunkFilename: `css/[name].${timeStamp}.css`,
},
}
}
這樣每次打包出來的js文件都不一樣,也就解決了瀏覽器的緩存問題。
Tips
filename: 指列在 entry(入口) 中,打包后輸出的文件的名稱chunkFilename: 指未列在 entry 中,卻又需要被打包出來的文件的名稱(懶加載的文件)
三.打包測試

發(fā)現(xiàn) JS 后參數(shù)帶上我設(shè)置的時(shí)間戳啦,測試成功。
清除瀏覽器 localStorage 緩存
1、更新package.json中的 version 值,每次打包往上遞增
2、main.js中,根據(jù) version 判斷是否進(jìn)行緩存清理
const VUE_APP_VERSION = require('../package.json').version
const vers = window.localStorage.getItem('appVersion')
if(VUE_APP_VERSION != vers){
localStorage.clear()
window.localStorage.setItem('appVersion', VUE_APP_VERSION)
location.reload()
}
Tips
有時(shí)版本不一樣,可以找webpack.prod.conf文件進(jìn)行修改噢~
到此這篇關(guān)于Vue項(xiàng)目打包部署后瀏覽器自動(dòng)清除緩存問題的解決方法的文章就介紹到這了,更多相關(guān)Vue瀏覽器自動(dòng)清除緩存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3實(shí)現(xiàn)vueFLow流程組件的詳細(xì)指南
VueFlow是一個(gè)專門為Vue.js框架設(shè)計(jì)的交互式可視化庫,它允許開發(fā)者輕松創(chuàng)建和管理復(fù)雜的圖形模型,如流程圖、狀態(tài)機(jī)、組織結(jié)構(gòu)圖等,本文給大家介紹了Vue3實(shí)現(xiàn)vueFLow流程組件的詳細(xì)指南,需要的朋友可以參考下2024-11-11
Vue Vine實(shí)現(xiàn)一個(gè)文件中寫多個(gè)組件的方法(最近很火)
Vue Vine提供了全新Vue組件書寫方式,主要的賣點(diǎn)是可以在一個(gè)文件里面寫多個(gè)vue組件,Vue Vine是一個(gè)vite插件,vite解析每個(gè)模塊時(shí)都會(huì)觸發(fā)插件的transform鉤子函數(shù),本文介紹Vue Vine是如何實(shí)現(xiàn)一個(gè)文件中寫多個(gè)組件,感興趣的朋友一起看看吧2024-07-07
可控制緩存銷毀的?keepAlive?組件實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了可控制緩存銷毀的?keepAlive?組件實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Vue3實(shí)現(xiàn)動(dòng)態(tài)導(dǎo)入Excel表格數(shù)據(jù)的方法詳解
在開發(fā)工作過程中,我們會(huì)遇到各種各樣的表格數(shù)據(jù)導(dǎo)入,動(dòng)態(tài)數(shù)據(jù)導(dǎo)入可以減少人為操作,減少出錯(cuò)。本文為大家介紹了Vue3實(shí)現(xiàn)動(dòng)態(tài)導(dǎo)入Excel表格數(shù)據(jù)的方法,需要的可以參考一下2022-11-11
vue中關(guān)于this.refs為空出現(xiàn)原因及分析
這篇文章主要介紹了vue中關(guān)于this.refs為空出現(xiàn)原因及分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05

