最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue項目每次發(fā)版后要清理瀏覽器緩存問題解決辦法

 更新時間:2024年02月22日 09:34:19   作者:itdhp  
最近項目更新頻繁,每次一更新客戶都說還跟之前的一樣,一查原因是因為客戶沒有清空瀏覽器的緩存,所以為了方便客戶看到最新版本,開始調(diào)研再發(fā)布新版本后自動清理緩存,這篇文章主要給大家介紹了關(guān)于Vue項目每次發(fā)版后要清理瀏覽器緩存問題的解決辦法,需要的朋友可以參考下

打包的時候給每個打包文件后面加一個時間戳,通過 vue.config.js 配置

const timeStamp = new Date().getTime()
module.exports = {
  // 打包的時候不使用hash值.因為我們有時間戳來確定項目的唯一性了.
  filenameHashing: false,
  configureWebpack: {
    // 輸出重構(gòu) 打包編譯后的js文件名稱,添加時間戳
    output: {
      filename: `js/[name].${timeStamp}.js`,
      chunkFilename: `js/chunk.[id].${timeStamp}.js`,
    },
  },
  css: {
    // 打包后css文件名稱添加時間戳
    extract: {
      filename: `css/[name].${timeStamp}.css`,
      chunkFilename: `css/chunk.[id].${timeStamp}.css`,
    },
  },
}

這樣可以解決問題,每次打包發(fā)布之后,項目不需要強制清理緩存就可以試試更新內(nèi)容了。但是這時候又有一個新問題產(chǎn)生。 就是這樣打包完發(fā)布之后,因為每次的文件名不一樣,項目中偶爾會報錯 ChunkLoadError: Loading chunk failed。原因就是瀏覽器取的是緩存中的文件名稱,新打包之后,文件名稱改變,導致瀏覽器找不到文件了 404。需要刷新頁面,重新加載文件。

先說一下單獨解決這個問題的方法

// 在main.js中
/* 路由異常錯誤處理,嘗試解析一個異步組件時發(fā)生錯誤,重新渲染目標頁面 */
router.onError((error) => {
  const pattern = /Loading chunk (\d)+ failed/g
  const isChunkLoadFailed = error.message.match(pattern)
  const targetPath = router.history.pending.fullPath
  if (isChunkLoadFailed) {
    // 用路由的replace方法,
    // 并沒有相當于F5刷新頁面,
    // 失敗的js文件并沒有從新請求,
    // 會導致一直嘗試replace頁面導致死循環(huán),
    // 而用 location.reload 方法,相當于觸發(fā)F5刷新頁面,
    // 雖然用戶體驗上來說會有刷新加載察覺,但不會導致頁面卡死及死循環(huán),
    // 從而曲線救國解決該問題
    window.location.reload()
    // router.replace(targetPath);
  } else {
    console.log('no')
  }
})

當捕獲到 Loading chunk {n} failed 的錯誤時我們重新渲染目標頁面,這種實現(xiàn)明顯更簡單和友好。

結(jié)合我們上面的問題,想到了一個新的解決方式,在打包的時候,文件名稱不變,使用版本號。這樣也可以實現(xiàn)每次打包發(fā)布后不需要強制清理緩存,又不會出現(xiàn)找不到文件的情況

在 vue.config.js 中,將 name.timeStamp.js 改成 name.js?v=timeStamp

const timeStamp = new Date().getTime()
module.exports = {
  configureWebpack: {
    output: {
      filename: `js/[name].js?v=${timeStamp}`,
      chunkFilename: `js/chunk.[id].js?v=${timeStamp}`,
    },
  },
  css: {
    extract: {
      filename: `css/[name].css?v=${timeStamp}`,
      chunkFilename: `css/chunk.[id].css?v=${timeStamp}`,
    },
  },

總結(jié) 

到此這篇關(guān)于Vue項目每次發(fā)版后要清理瀏覽器緩存問題解決的文章就介紹到這了,更多相關(guān)Vue發(fā)版后要清理瀏覽器緩存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VUE-Table上綁定Input通過render實現(xiàn)雙向綁定數(shù)據(jù)的示例

    VUE-Table上綁定Input通過render實現(xiàn)雙向綁定數(shù)據(jù)的示例

    今天小編就為大家分享一篇VUE-Table上綁定Input通過render實現(xiàn)雙向綁定數(shù)據(jù)的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • AntV F2和vue-cli構(gòu)建移動端可視化視圖過程詳解

    AntV F2和vue-cli構(gòu)建移動端可視化視圖過程詳解

    這篇文章主要介紹了AntV F2和vue-cli構(gòu)建移動端可視化視圖過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • el-select綁定值遇到的問題小結(jié)

    el-select綁定值遇到的問題小結(jié)

    碰到一個問題,選擇框的數(shù)據(jù)是后端傳過來的,下拉框的數(shù)據(jù)也是后端傳過來的,但是打開下拉框時,發(fā)現(xiàn)數(shù)據(jù)沒有高亮,最后通過只要選擇框v-model給的值和option的value綁定的值一致,就可以高亮,感興趣的朋友一起看看吧
    2023-12-12
  • vue-cli axios請求方式及跨域處理問題

    vue-cli axios請求方式及跨域處理問題

    這篇文章主要介紹了vue-cli axios請求方式及跨域處理問題,文中還給大家提到了vue中axios解決跨域問題和攔截器使用,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-03-03
  • Vue中的路由跳轉(zhuǎn)及傳參的多種方法小結(jié)

    Vue中的路由跳轉(zhuǎn)及傳參的多種方法小結(jié)

    這篇文章主要介紹了Vue中的路由跳轉(zhuǎn)及傳參的多種方法小結(jié),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • Vue項目如何安裝引入使用Vant

    Vue項目如何安裝引入使用Vant

    Vant是一個專為移動端設(shè)計的輕量級組件庫,自2017年開源以來,提供了Vue2、Vue3及多平臺版本支持,安裝Vant時需要注意版本兼容問題,Vue3項目應(yīng)安裝最新版Vant3,而Vue2項目則需安裝Vant2,安裝錯誤時,需卸載后重新安裝正確版本
    2024-10-10
  • vue項目動態(tài)設(shè)置iframe元素高度的操作代碼

    vue項目動態(tài)設(shè)置iframe元素高度的操作代碼

    在現(xiàn)代Web開發(fā)中,iframe元素常用于嵌入外部內(nèi)容到當前網(wǎng)頁中,比如在線文檔、視頻播放器或是廣告,Vue框架提供了強大的工具來解決這個問題,通過動態(tài)設(shè)置iframe元素的高度,我們可以確保頁面布局既美觀又高效,本文給大家介紹了vue項目動態(tài)設(shè)置iframe元素高度的操作
    2024-10-10
  • 探討Vue.js的組件和模板

    探討Vue.js的組件和模板

    指令是Vue.js中一個重要的特性, 主要提供了一種機制將數(shù)據(jù)的變化映射為DOM行為。下面通過本文給大家分享Vue.js的組件和模板,需要的朋友參考下吧
    2017-10-10
  • Vue設(shè)置select下拉框的默認選項詳解(select空白bug解決)

    Vue設(shè)置select下拉框的默認選項詳解(select空白bug解決)

    最近開始學習vue,在學習的過程中遇到的問題將記錄在這里,下面這篇文章主要給大家介紹了關(guān)于Vue設(shè)置select下拉框的默認選項(select空白bug解決)的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Vue中的組件注冊方法及注意事項

    Vue中的組件注冊方法及注意事項

    在Vue中,組件是構(gòu)建頁面的基本單位。通過組件化開發(fā),可以提高代碼的復(fù)用性和可維護性。組件的注冊方法包括全局注冊和局部注冊兩種方式。同時,需要注意組件名的命名規(guī)范、組件選項的定義方式、組件之間的通信等問題,以實現(xiàn)更好的組件復(fù)用和開發(fā)效率
    2023-05-05

最新評論

精河县| 潮州市| 晋江市| 成安县| 莲花县| 陆丰市| 宽甸| 宾川县| 靖边县| 通渭县| 永靖县| 中山市| 章丘市| 公安县| 尖扎县| 北流市| 虎林市| 桃园市| 会泽县| 镇赉县| 同仁县| 黄山市| 铜川市| 弥勒县| 文成县| 凤翔县| 海林市| 潢川县| 宣汉县| 弥渡县| 英超| 班玛县| 佳木斯市| 连州市| 库车县| 黔西| 沈阳市| 涟水县| 宜城市| 吐鲁番市| 灯塔市|