Vue項目打包部署后瀏覽器自動清除緩存問題的解決方法
一、報錯如下:
每次build打包部署到服務器上時,偶爾會出現(xiàn)前端資源文件不能及時更新到最新,瀏覽器存在緩存問題,這時在當前頁面進行按鈕點擊等事件處理時,控制臺報錯chunk load error
,如下顯示:
原因:通過查看當前sources里的文件,可以發(fā)現(xiàn):控制臺報錯提示中所請求的js文件哈希值跟sources緩存的文件哈希值并不一樣,說明 當前頁面請求了緩存,然而由于資源文件被更新 導致找不到 出現(xiàn)404的情況。
直接解決辦法:清除瀏覽器緩存。(但是每次部署 都要讓用戶重新清一次緩存不是很友好)下面通過其他方式解決這個問題。
二、解決:
1、在index.html入口文件處設置meta標簽,清除頁面緩存。
<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打包文件添加版本號時間戳,區(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: { // 輸出重構 打包編譯后的css文件名稱,添加時間戳 extract: { filename: `css/[name].${timeStamp}.css`, chunkFilename: `css/[name].${timeStamp}.css`, }, } }
這樣每次打包出來的js文件都不一樣,也就解決了瀏覽器的緩存問題。
Tips
filename
: 指列在 entry(入口) 中,打包后輸出的文件的名稱chunkFilename
: 指未列在 entry 中,卻又需要被打包出來的文件的名稱(懶加載的文件)
三.打包測試
發(fā)現(xiàn) JS 后參數(shù)帶上我設置的時間戳啦,測試成功。
清除瀏覽器 localStorage 緩存
1、更新package.json中的 version 值,每次打包往上遞增
2、main.js中,根據(jù) version 判斷是否進行緩存清理
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
有時版本不一樣,可以找webpack.prod.conf
文件進行修改噢~
到此這篇關于Vue項目打包部署后瀏覽器自動清除緩存問題的解決方法的文章就介紹到這了,更多相關Vue瀏覽器自動清除緩存內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue3.x的版本中build后dist文件中出現(xiàn)legacy的js文件問題
這篇文章主要介紹了Vue3.x的版本中build后dist文件中出現(xiàn)legacy的js文件問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07vue + el-tree 實現(xiàn)插入節(jié)點自定義名稱數(shù)據(jù)的代碼
這篇文章主要介紹了vue + el-tree 實現(xiàn)插入節(jié)點自定義名稱數(shù)據(jù)的代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-12-12Vue3+TypeScript封裝axios并進行請求調用的實現(xiàn)
這篇文章主要介紹了Vue3+TypeScript封裝axios并進行請求調用的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04Vue2.4+新增屬性.sync、$attrs、$listeners的具體使用
這篇文章主要介紹了Vue2.4+新增屬性.sync、$attrs、$listeners的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03基于ElementUI實現(xiàn)v-tooltip指令的示例代碼
文本溢出隱藏并使用tooltip 提示的需求,相信在平時的開發(fā)中會經(jīng)常遇到,常規(guī)做法一般是使用 elementui 的 el-tooltip 組件,在每次組件更新的時候去獲取元素的寬度/高度判斷是否被隱藏,本文給大家介紹了基于ElementUI實現(xiàn)v-tooltip指令,需要的朋友可以參考下2024-09-09Vue響應式原理Observer、Dep、Watcher理解
這篇文章主要介紹了Vue響應式原理-理解Observer、Dep、Watcher,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06