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

Vue項(xiàng)目如何開(kāi)啟gzip

 更新時(shí)間:2025年06月11日 16:48:30   作者:&活在當(dāng)下&  
這篇文章主要介紹了Vue項(xiàng)目如何開(kāi)啟gzip的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

隨著項(xiàng)目的迭代,項(xiàng)目的打包體積會(huì)越來(lái)越多,項(xiàng)目性能就會(huì)逐漸變差,這時(shí)候可以開(kāi)啟 gzip 進(jìn)行性能優(yōu)化,提升訪問(wèn)速度,解決頁(yè)面白屏?xí)r間長(zhǎng)的問(wèn)題。

下面介紹一下 Vue 開(kāi)啟 gzip 的方法:

gzip 壓縮的方式有兩種

1、在服務(wù)端開(kāi)啟壓縮,當(dāng)瀏覽器發(fā)起請(qǐng)求時(shí),服務(wù)端對(duì)傳輸資源進(jìn)行實(shí)時(shí)壓縮,然后返回給瀏覽器

2、 對(duì) webpack 配置打包壓縮,并在服務(wù)端加上支持 gizp 的配置,當(dāng)瀏覽器請(qǐng)求時(shí),服務(wù)端直接將資源返回給瀏覽器

兩種方法的區(qū)別

  • 第一種是服務(wù)端進(jìn)行實(shí)時(shí)壓縮,對(duì)服務(wù)器的性能消耗較大
  • 第二種則是打包后的 dist 文件包體積比較大(因?yàn)榘?.gz 文件和源文件)

綜上,兩種方法混合用比較合適,在 webpack 打包時(shí),配置只對(duì)超過(guò)一定體積的文件進(jìn)行壓縮,然后配置 nginx ,當(dāng)瀏覽器發(fā)起請(qǐng)求時(shí),服務(wù)端對(duì) .gz 文件進(jìn)行直接傳輸給瀏覽器,對(duì)源文件先進(jìn)行實(shí)時(shí)壓縮,在返回給瀏覽器。

第一種方法

直接在 nginx 服務(wù)端配置開(kāi)啟 gzip。

配置如下:

# 開(kāi)啟服務(wù)器實(shí)時(shí)gzip
  gzip on;
  
  # 開(kāi)啟靜態(tài)gz文件返回
  gzip_static on;
  
  # 啟用gzip壓縮的最小文件,小于設(shè)置值的文件將不會(huì)壓縮
  gzip_min_length 1k;
  
  # 設(shè)置壓縮所需要的緩沖區(qū)大小     
  gzip_buffers 32 4k;

# 設(shè)置gzip壓縮針對(duì)的HTTP協(xié)議版本
  gzip_http_version 1.0;

  # gzip 壓縮級(jí)別,1-9,數(shù)字越大壓縮的越好,也越占用CPU時(shí)間
  gzip_comp_level 7;

  # 進(jìn)行壓縮的文件類型。javascript有多種形式。其中的值可以在 mime.types 文件中找到。
  gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;

  # 是否在http header中添加Vary: Accept-Encoding,建議開(kāi)啟
  gzip_vary on;

  # 禁用IE 6 gzip
  gzip_disable "MSIE [1-6]\.";

添加后重啟 nginx ./nginx -s reload ,如下圖,看到響應(yīng)頭中出現(xiàn) Content-Encoding:gzip 表示開(kāi)啟成功

第二種方法

在 Vue 項(xiàng)目中,使用 webpack 來(lái)開(kāi)啟 gzip ,如下:

首先,安裝 compression 插件

npm install compression-webpack-plugin

然后在 vue.config.js 中加上如下配置:

module.exports = {
  chainWebpack: config => {
    const CompressionWebpackPlugin = require('compression-webpack-plugin')
    if (process.env.NODE_ENV === 'production') {
        config.plugin('CompressionPlugin').use(
        	new CompressionWebpackPlugin({
            	filename: '[path][base].gz[query]', // 壓縮后的文件名(保持原文件名,后綴加.gz)
            	algorithm: 'gzip', // 使用gzip壓縮
            	test: /\.js$|\.css$/, // 匹配文件名
            	threshold: 10240, // 對(duì)超過(guò)10k的數(shù)據(jù)壓縮
            	minRatio: 1, // 壓縮率小于1才會(huì)壓縮
            	deleteOriginalAssets: false // 是否刪除未壓縮的源文件,謹(jǐn)慎設(shè)置,如果希望提供非gzip的資源,可不設(shè)置或者設(shè)置為false(比如刪除打包后的gz后還可以加載到原始資源文件)
          })
        )
   	}
  }
}

打包后,文件中會(huì)出現(xiàn) .gz 文件,如圖:

最后檢查一下 nginx 服務(wù)端配置是否支持 gzip ,如果不支持,則需加上如下配置:

    gzip on;
	gzip_static on;
	gzip_min_length  5k;
	gzip_buffers     4 16k;
	gzip_http_version 1.0;
	gzip_comp_level 7;
	gzip_types       text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
	gzip_vary on;

總結(jié)

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

相關(guān)文章

  • vue elementUI使用tabs與導(dǎo)航欄聯(lián)動(dòng)

    vue elementUI使用tabs與導(dǎo)航欄聯(lián)動(dòng)

    這篇文章主要為大家詳細(xì)介紹了vue elementUI使用tabs與導(dǎo)航欄聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • vue3中實(shí)現(xiàn)異步組件的方法實(shí)例

    vue3中實(shí)現(xiàn)異步組件的方法實(shí)例

    前端開(kāi)發(fā)經(jīng)常遇到異步的問(wèn)題,請(qǐng)求函數(shù)、鏈接庫(kù)等,下面這篇文章主要給大家介紹了關(guān)于vue3中實(shí)現(xiàn)異步組件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Vue CLI項(xiàng)目 axios模塊前后端交互的使用(類似ajax提交)

    Vue CLI項(xiàng)目 axios模塊前后端交互的使用(類似ajax提交)

    這篇文章主要介紹了Vue-CLI項(xiàng)目-axios模塊前后端交互的使用詳解(類似ajax提交),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 基于Vue3實(shí)現(xiàn)印章徽章組件的示例代碼

    基于Vue3實(shí)現(xiàn)印章徽章組件的示例代碼

    這篇文章主要介紹了如何利用vue3實(shí)現(xiàn)簡(jiǎn)單的印章徽章控件,文中通過(guò)示例代碼講解詳細(xì),需要的朋友們下面就跟隨小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Vue+Electron打包桌面應(yīng)用(超詳細(xì)完整教程)

    Vue+Electron打包桌面應(yīng)用(超詳細(xì)完整教程)

    這篇文章主要介紹了Vue+Electron打包桌面應(yīng)用超詳細(xì)完整教程,在這大家要記住整個(gè)項(xiàng)目的json文件不能有注釋,及時(shí)沒(méi)報(bào)錯(cuò)也不行,否則運(yùn)行命令時(shí)還是有問(wèn)題,具體細(xì)節(jié)問(wèn)題參考下本文詳細(xì)講解
    2024-02-02
  • vue如何根據(jù)url下載非同源文件

    vue如何根據(jù)url下載非同源文件

    我們?cè)陂_(kāi)發(fā)過(guò)程中,有時(shí)會(huì)遇到后端返回的文件地址和我們的網(wǎng)站不是同源的情況下,本文就介紹了vue如何根據(jù)url下載非同源文件,感興趣的可以了解一下
    2021-06-06
  • vue3?api自動(dòng)導(dǎo)入神器推薦

    vue3?api自動(dòng)導(dǎo)入神器推薦

    在做vue3項(xiàng)目中時(shí),每次使用都需要先進(jìn)行引入,下面這篇文章主要給大家介紹了關(guān)于vue3?api自動(dòng)導(dǎo)入的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • vue3子組件如何修改父組件傳過(guò)來(lái)的props數(shù)據(jù)

    vue3子組件如何修改父組件傳過(guò)來(lái)的props數(shù)據(jù)

    周所周知vue的props是單向數(shù)據(jù)流,可以從父組件中改變傳往子組件的props,反之則不行,下面這篇文章主要給大家介紹了關(guān)于vue3子組件如何修改父組件傳過(guò)來(lái)的props數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • element-ui時(shí)間日期選擇器限制選擇范圍的幾種場(chǎng)景

    element-ui時(shí)間日期選擇器限制選擇范圍的幾種場(chǎng)景

    這篇文章主要給大家介紹了關(guān)于element-ui時(shí)間日期選擇器限制選擇范圍的幾種場(chǎng)景,一般在實(shí)際開(kāi)發(fā)場(chǎng)景中我們需要對(duì)時(shí)間選擇做一些限制,如不能選擇今天之前的時(shí)間、不能選擇今天以后的日期、限制日期不能大于開(kāi)始日期等等,需要的朋友可以參考下
    2023-08-08
  • 談?wù)勎以趘ue-cli3中用預(yù)渲染遇到的坑

    談?wù)勎以趘ue-cli3中用預(yù)渲染遇到的坑

    這篇文章主要介紹了談?wù)勎以趘ue-cli3中用預(yù)渲染遇到的坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論