欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue 部署上線清除瀏覽器緩存的方式

 更新時間:2022年08月03日 10:08:07   作者:三個木馬人  
這篇文章主要介紹了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默認(rèn)配置,打包后css和js的名字后面都加了哈希值,不會有緩存問題。但是index.html在服務(wù)器端可能是有緩存的,需要在服務(wù)器配置不讓緩存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文件設(shè)置永遠(yuǎn)不緩存
    }  
  }
}
  • no-cache瀏覽器會緩存,但刷新頁面或者重新打開時 會請求服務(wù)器,服務(wù)器可以響應(yīng)304,如果文件有改動就會響應(yīng)200
  • no-store瀏覽器不緩存,刷新頁面需要重新下載頁面

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

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

//定義一個變量獲取當(dāng)前時間戳
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 創(chuàng)建的項目里,打開 vue.config.js 文件 ( 沒有該文件自己在 src 同級目錄下創(chuàng)建一個 )

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: { // 輸出重構(gòu)  打包編譯后的 文件名稱  【模塊名稱.版本號.時間戳】
		     filename: `js/[name].[chunkhash].${version}.js`,
		     chunkFilename: `js/[id].[chunkhash].${version}.js`
		}
	}
}

效果:

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 = {
? // 解決發(fā)布生產(chǎn)以后有緩存的問題
? // 輸出重構(gòu) ?打包編譯后的 文件名稱 ?【模塊名稱.版本號.時間戳】
? //一般情況下,該方法就能解決。
? 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 (鏈?zhǔn)讲僮?這個庫提供了一個 webpack 原始配置的上層抽象,
? // 使其可以定義具名的 loader 規(guī)則和具名插件,并有機會在后期進(jìn)入這些規(guī)則并對它們的選項進(jìn)行修改。
? // 它允許我們更細(xì)的控制其內(nèi)部配置。
? 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
?? ? ? ? ?})
?? ?},
};

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue 2.0 服務(wù)端渲染入門介紹

    Vue 2.0 服務(wù)端渲染入門介紹

    本篇文章主要介紹了Vue 2.0 服務(wù)端渲染入門,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Vue3+Canvas實現(xiàn)坦克大戰(zhàn)游戲(二)

    Vue3+Canvas實現(xiàn)坦克大戰(zhàn)游戲(二)

    本文主要給大家講解一下子彈擊中物體、物體銷毀、敵方坦克構(gòu)建生成、運動算法、爆炸效果、以及障礙物的生成,感興趣的小伙伴可以了解一下
    2022-03-03
  • Vue3獲取地址欄參數(shù)方法詳解

    Vue3獲取地址欄參數(shù)方法詳解

    Vue3 獲取地址欄參數(shù)有兩個方式:查詢參數(shù)和路徑參數(shù)。Vue3獲取地址欄參數(shù)是從路由router中獲取,查詢參數(shù)和路徑參數(shù)獲取方式不一樣。感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • 在Vue3中使用vue-qrcode庫實現(xiàn)二維碼生成的方法

    在Vue3中使用vue-qrcode庫實現(xiàn)二維碼生成的方法

    在Vue3中實現(xiàn)二維碼生成需要使用第三方庫來處理生成二維碼的邏輯,常用的庫有 qrcode和 vue-qrcode,這篇文章主要介紹了在Vue3中使用vue-qrcode庫實現(xiàn)二維碼生成,需要的朋友可以參考下
    2023-12-12
  • 利用vue實現(xiàn)密碼輸入框/驗證碼輸入框

    利用vue實現(xiàn)密碼輸入框/驗證碼輸入框

    這篇文章主要為大家詳細(xì)介紹了如何利用vue實現(xiàn)密碼輸入框或驗證碼輸入框的效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2023-08-08
  • vue elementUI實現(xiàn)自定義正則規(guī)則驗證

    vue elementUI實現(xiàn)自定義正則規(guī)則驗證

    本文主要介紹了vue elementUI實現(xiàn)自定義正則規(guī)則驗證,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue實現(xiàn)雙向數(shù)據(jù)綁定

    vue實現(xiàn)雙向數(shù)據(jù)綁定

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)雙向數(shù)據(jù)綁定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • WebStorm啟動vue項目報錯代碼:1080?throw?err解決辦法

    WebStorm啟動vue項目報錯代碼:1080?throw?err解決辦法

    在使用webstorm新建vue項目時常會遇到一些報錯,下面這篇文章主要給大家介紹了關(guān)于WebStorm啟動vue項目報錯代碼:1080?throw?err的解決辦法,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • vue使用el-upload上傳文件及Feign服務(wù)間傳遞文件的方法

    vue使用el-upload上傳文件及Feign服務(wù)間傳遞文件的方法

    這篇文章主要介紹了vue使用el-upload上傳文件及Feign服務(wù)間傳遞文件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • vue調(diào)用高德地圖實例代碼

    vue調(diào)用高德地圖實例代碼

    本篇文章主要介紹了vue調(diào)用高德地圖實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論