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

Vue項目發(fā)布后瀏覽器緩存問題解決方案

 更新時間:2024年09月02日 08:35:51   作者:算法小生?  
在vue項目開發(fā)中一直有一個令人都疼的問題,就是緩存問題,這篇文章主要給大家介紹了關(guān)于Vue項目發(fā)布后瀏覽器緩存問題的解決方案,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

1. 現(xiàn)象描述

每次Jenkins自動化發(fā)布Vue項目后,用戶需要手動全部清理歷史緩存數(shù)據(jù)才可以使用系統(tǒng),用戶體驗非常不好

2. 解決方案

2.1 配置public/index.html

配置index.html, 在首頁啟動no-store禁止緩存

<meta http-equiv="pragram" content="no-cache">
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="expires" content="0">

2.2 配置vue.config.js按時間戳打包

vue 默認配置,打包后 css 和 js 的名字后面都加了哈希值,不會有緩存問題,當然我們也可以自己重新定義根據(jù)時間戳

const version = new Date().getTime();
module.exports = {
	css: {
        // 是否使用css分離插件 ExtractTextPlugin
        extract: {
            // 修改打包后css文件名   // css打包文件,添加時間戳
            filename: `assert/css/[name].${version}.css`,
            chunkFilename: `assert/css/[name].${version}.css`,
        }
    },
    configureWebpack: {
        output: isProduction ?  { // 輸出 添加時間戳到打包編譯后的js文件名稱
            filename: `assert/js/js[name].${version}.js`,
            chunkFilename: `assert/js/js[name].${version}.js`,
        } : {},
   }
}

2.3 配置nginx

但是 index.html 在服務(wù)器端可能是有緩存的,需要在服務(wù)器配置不讓緩存 index.html。之前我們有寫過文章Jenkins自動化發(fā)布Vue項目,我們同樣在default.conf中配置。我們禁止對html頁面緩存,對js等緩存,這樣在首頁始終可以獲取最新的html頁面,進入后自然可以使用最新的js打包文件,從而解決緩存問題

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        if ($request_filename ~* .*\.(js|css|woff|png|jpg|jpeg)$)
        {
            expires    100d;
        }
        if ($request_filename ~* .*\.(?:htm|html)$)
        {
            add_header Cache-Control "no-store";
        }
    }

如果是通過K8S發(fā)布的,可能存在多個Nginx,只需配置項目代碼中使用的nginx即可

附:清除瀏覽器 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()
}

OK,解決

總結(jié)

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

相關(guān)文章

最新評論

宝鸡市| 泾川县| 高尔夫| 济源市| 乐亭县| 本溪市| 肃宁县| 惠水县| 隆安县| 含山县| 安平县| 农安县| 房产| 泽普县| 寻甸| 双牌县| 磐石市| 夏津县| 淮安市| 安康市| 丰镇市| 昭平县| 介休市| 桐柏县| 云龙县| 翁牛特旗| 龙州县| 荣昌县| 唐山市| 兴化市| 屯昌县| 城固县| 赞皇县| 美姑县| 台州市| 阳信县| 保靖县| 尉氏县| 徐汇区| 崇礼县| 兰州市|