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

Vue 打包上線后的緩存問(wèn)題解決

 更新時(shí)間:2023年11月29日 16:53:38   作者:樂(lè)辭  
在使用vue腳手架搭建前端工程時(shí),經(jīng)常會(huì)遇到打包上線后的緩存問(wèn)題,許多開發(fā)者會(huì)直接在index.html中加入類似以下代碼來(lái)解決緩存問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧

問(wèn)題描述

在使用vue腳手架搭建前端工程時(shí),經(jīng)常會(huì)遇到打包上線后的緩存問(wèn)題。具體表現(xiàn)為,當(dāng)程序版本升級(jí)時(shí),用戶仍然訪問(wèn)到舊版本的頁(yè)面。許多開發(fā)者會(huì)直接在index.html中加入類似以下代碼來(lái)解決緩存問(wèn)題:

<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">

這種方法雖然解決了緩存問(wèn)題,但卻導(dǎo)致用戶每次訪問(wèn)程序都需要重新請(qǐng)求服務(wù)器,無(wú)法利用靜態(tài)資源的緩存,從而增加了流量消耗和網(wǎng)絡(luò)壓力。

需求澄清

實(shí)際上,我們需要解決的問(wèn)題并不是簡(jiǎn)單地要緩存或不要緩存,而是希望根據(jù)情況靈活控制

  • 每次程序升級(jí)后,用戶不會(huì)因?yàn)榫彺鎲?wèn)題而訪問(wèn)到舊版本的程序。
  • 如果程序沒(méi)有升級(jí),用戶可以利用靜態(tài)資源的緩存,減少對(duì)服務(wù)器的請(qǐng)求。

解決原理

在vue腳手架的每次打包過(guò)程中,會(huì)給生成的靜態(tài)資源文件名添加哈希后綴,并 index.html中引入帶有相應(yīng)哈希后綴的靜態(tài)資源文件。因此,每個(gè)版本的靜態(tài)資源都是被正確引入的,不會(huì)因升級(jí)而出現(xiàn)緩存問(wèn)題。因此,我們只需讓index.html不被緩存,而讓其他靜態(tài)資源可以被緩存,即可滿足需求。

然而,要實(shí)現(xiàn)讓靜態(tài)資源被緩存,但讓index.html不被緩存,則需要借助服務(wù)器配置,通過(guò)設(shè)置針對(duì)index.html請(qǐng)求的header來(lái)控制緩存。

具體實(shí)現(xiàn)

Nginx服務(wù)器配置

如果你使用Nginx服務(wù)器,你可以簡(jiǎn)單地添加以下配置:

location = /index.html {
 add_header Cache-Control "no-cache, no-store";
}

Apache服務(wù)器配置

如果你使用Apache服務(wù)器,你可以在VirtualHost中增加以下配置:

<Files "index.html">  
    Header set Cache-Control "no-cache, no-store"  
 </Files>

修改webpack的配置文件

同時(shí),你也可以通過(guò)修改webpack的配置文件來(lái)實(shí)現(xiàn)對(duì)靜態(tài)資源文件名的哈希處理,以確保靜態(tài)資源能夠被有效緩存:

 onst Timestamp = new Date().getTime();
 // Vue.config.js 配置選項(xiàng)
module.exports = {
	configureWebpack: { // webpack 配置
        output: { // 輸出重構(gòu)  打包編譯后的 文件名稱:【模塊名稱.contenthash】使用contenthash保證了文件被修改才會(huì)重新生成新的文件名,讓用戶能有效使用瀏覽器緩存,減輕服務(wù)器壓力
            filename: `static/js/[name].[contenthash:8].js`,
            chunkFilename: `static/js/[name].[contenthash:8].js`
        },
    }
}

通過(guò)以上步驟,你可以靈活地控制緩存,讓用戶在程序升級(jí)后訪問(wèn)到最新版本的頁(yè)面,同時(shí)減少了靜態(tài)資源的重復(fù)請(qǐng)求,優(yōu)化了用戶體驗(yàn)和網(wǎng)絡(luò)流量消耗。

到此這篇關(guān)于Vue 打包上線后的緩存問(wèn)題的文章就介紹到這了,更多相關(guān)vue打包上線緩存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue中的v-for列表循環(huán)示例詳解

    Vue中的v-for列表循環(huán)示例詳解

    循環(huán)使用v-for指令,v-for指令需要以site in sites形式的特殊語(yǔ)法,sites是源數(shù)據(jù)數(shù)組并且site是數(shù)組元素迭代的別名,下面這篇文章主要給大家介紹了關(guān)于Vue中v-for列表循環(huán)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Vue學(xué)習(xí)筆記進(jìn)階篇之vue-cli安裝及介紹

    Vue學(xué)習(xí)筆記進(jìn)階篇之vue-cli安裝及介紹

    這篇文章主要介紹了Vue學(xué)習(xí)筆記進(jìn)階篇之vue-cli安裝及介紹,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • vue中checkbox如何修改為圓形樣式

    vue中checkbox如何修改為圓形樣式

    這篇文章主要介紹了vue中checkbox如何修改為圓形樣式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Vue 2.0的數(shù)據(jù)依賴實(shí)現(xiàn)原理代碼簡(jiǎn)析

    Vue 2.0的數(shù)據(jù)依賴實(shí)現(xiàn)原理代碼簡(jiǎn)析

    本篇文章主要介紹了Vue 2.0的數(shù)據(jù)依賴實(shí)現(xiàn)原理代碼簡(jiǎn)析,主要從初始化的數(shù)據(jù)層面上分析了Vue是如何管理依賴來(lái)到達(dá)數(shù)據(jù)的動(dòng)態(tài)響應(yīng),有興趣的可以了解一下
    2017-07-07
  • vue靜態(tài)配置文件不進(jìn)行編譯的處理過(guò)程(在public中引入js)

    vue靜態(tài)配置文件不進(jìn)行編譯的處理過(guò)程(在public中引入js)

    這篇文章主要介紹了vue靜態(tài)配置文件不進(jìn)行編譯的處理過(guò)程(在public中引入js),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue中el-table合并列的具體實(shí)現(xiàn)

    vue中el-table合并列的具體實(shí)現(xiàn)

    本文主要介紹了vue中el-table合并列的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • element中el-table局部刷新的實(shí)現(xiàn)示例

    element中el-table局部刷新的實(shí)現(xiàn)示例

    本文主要介紹了element中el-table局部刷新的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 詳解Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程

    詳解Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程

    Unity webgl嵌入到前端網(wǎng)頁(yè)中,前端通過(guò)調(diào)用Unity webgl內(nèi)方法實(shí)現(xiàn)需要展示的功能,前端點(diǎn)擊Unity webgl內(nèi)的交互點(diǎn),Unity webgl返回給前端一些需要的數(shù)據(jù),這篇文章主要介紹了Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下
    2024-01-01
  • vue如何獲取參數(shù)方法的封裝

    vue如何獲取參數(shù)方法的封裝

    文章介紹了如何在Vue.js中獲取URL參數(shù)、定義和暴露公共方法、在main.js中引入并注冊(cè)到Vue實(shí)例原型,以及頁(yè)面中調(diào)用這些方法,作者分享了個(gè)人經(jīng)驗(yàn),希望對(duì)大家有所幫助
    2024-12-12
  • Vue開發(fā)中遇到的跨域問(wèn)題及解決方法

    Vue開發(fā)中遇到的跨域問(wèn)題及解決方法

    在本篇文章里小編給大家整理的是關(guān)于Vue開發(fā)中遇到的跨域問(wèn)題及解決方法,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02

最新評(píng)論