中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue如何部署上線清除瀏覽器緩存

發布時間:2022-08-03 16:50:25 來源:億速云 閱讀:904 作者:iii 欄目:開發技術

今天小編給大家分享一下vue如何部署上線清除瀏覽器緩存的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    部署上線清除瀏覽器緩存

    vue 項目打包上線之后,每一次都會有瀏覽器緩存問題,需要手動的清除緩存。這樣用戶體驗非常不好,所以我們在打包部署的時候需要盡量避免瀏覽器的緩存。

    下面是我的解決方案:

    修改根目錄index.html

    在 head 里面添加下面代碼

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

    這種會讓所有的css/js資源重新加載

    配置 nginx 不緩存 html

    vue默認配置,打包后css和js的名字后面都加了哈希值,不會有緩存問題。但是index.html在服務器端可能是有緩存的,需要在服務器配置不讓緩存index.html

    server {
    listen 80;
    server_name yourdomain.com;
    location / {
        try_files $uri $uri/ /index.html;
        root /yourdir/;
        index index.html index.htm;
    
        if ($request_filename ~* .*\.(?:htm|html)$)
        {
            add_header Cache-Control "no-cache, no-store";  //對html文件設置永遠不緩存
        }  
      }
    }
    • no-cache瀏覽器會緩存,但刷新頁面或者重新打開時 會請求服務器,服務器可以響應304,如果文件有改動就會響應200

    • no-store瀏覽器不緩存,刷新頁面需要重新下載頁面

    打包的文件路徑添加時間戳

    1、在 vue-cli2.x 創建的項目里,找到 build/webpack.prod.conf.js 文件

    //定義一個變量獲取當前時間戳
    const version = new Date().getTime();
    //output模塊將時間戳加入到輸出的文件名里
    output: {
      publicPath: '/',
      path: config.build.assetsRoot,
      filename: utils.assetsPath(`js/[name].[chunkhash].${version}.js`),
      chunkFilename: utils.assetsPath(`js/[id].[chunkhash].${version}.js`)
    },
    
    //css文件名加時間戳
    new ExtractTextPlugin({
        filename: utils.assetsPath(`css/[name].[contenthash].${version}.css`),
        allChunks: true,
    }),

    2、在 vue-cli3.x 創建的項目里,打開 vue.config.js 文件 ( 沒有該文件自己在 src 同級目錄下創建一個 )

    const version = new Date().getTime();
    module.exports = {
      	outputDir: 'dist', //打包的時候生成的一個文件名
    	lintOnSave: false,
      	productionSourceMap: false,
      	css: {
    	    loaderOptions: {
    	      sass: {
    	        data: `@import "@/components/themes/_handle.scss";`
    	      }
    	    },
    	    // 是否使用css分離插件 ExtractTextPlugin
    	    extract: {
    	      // 修改打包后css文件名   // css打包文件,添加時間戳
    	      filename: `css/[name].${version}.css`,   
    	      chunkFilename: `css/[name].${version}.css`
    	    }
    	 },
      	configureWebpack: {
    		output: { // 輸出重構  打包編譯后的 文件名稱  【模塊名稱.版本號.時間戳】
    		     filename: `js/[name].[chunkhash].${version}.js`,
    		     chunkFilename: `js/[id].[chunkhash].${version}.js`
    		}
    	}
    }

    效果:

    vue如何部署上線清除瀏覽器緩存

    vue項目部署,清理緩存方式

    1.index.html

    <!--清除瀏覽器中的緩存 -->
    <meta http-equiv="pragram" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">

    2.vue.config.js

    const timeUpdate  = new Date().getTime();
    module.exports = {
      // 解決發布生產以后有緩存的問題
      // 輸出重構  打包編譯后的 文件名稱  【模塊名稱.版本號.時間戳】
      //一般情況下,該方法就能解決。
      configureWebpack: {
        output: {
          filename: `[name].js?v=${timeUpdate}`,
          chunkFilename: `[name].js?v=${timeUpdate}`
        },
      },
      // 修改打包后css文件名
      css: {
        loaderOptions: {
          sass: {
            data: `@import "@/components/themes/_handle.scss";`
          }
        },
        // 是否使用css分離插件 ExtractTextPlugin
        extract: {
          filename: `static/css/[name].${timeUpdate}.css`,
          chunkFilename: `static/css/[name].${timeUpdate}.css`
        }
      },
      // webpack-chain (鏈式操作)這個庫提供了一個 webpack 原始配置的上層抽象,
      // 使其可以定義具名的 loader 規則和具名插件,并有機會在后期進入這些規則并對它們的選項進行修改。
      // 它允許我們更細的控制其內部配置。
      chainWebpack(config) {
            // img的文件名修改
            config.module
              .rule('images')
              .use('url-loader')
              .tap(options => {
                options.name = `static/img/[name].${timeUpdate}.[ext]`
                options.fallback = {
                  loader: 'file-loader',
                  options: {
                    name: `static/img/[name].${timeUpdate}.[ext]`
                  }
                }
                return options
              })
        },
    };

    以上就是“vue如何部署上線清除瀏覽器緩存”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    普陀区| 泸定县| 墨脱县| 临湘市| 崇左市| 阳谷县| 鞍山市| 吐鲁番市| 明星| 西峡县| 新乐市| 南投市| 兴业县| 涿州市| 鄂州市| 沿河| 抚远县| 兰州市| 上杭县| 固始县| 大竹县| 南和县| 灵丘县| 富锦市| 大城县| 山西省| 聂拉木县| 汉阴县| 旺苍县| 巴彦县| 三江| 西林县| 九台市| 谢通门县| 灵川县| 通榆县| 霍州市| 建始县| 墨竹工卡县| 沂南县| 岗巴县|