vue項(xiàng)目打包開啟gzip壓縮具體使用方法
使用前

使用后

方法
webpack配置Compression-webpack-plugin壓縮gzip文件
作用:提升網(wǎng)絡(luò)傳輸率->優(yōu)化web頁(yè)面加載時(shí)間
基本原理
- 瀏覽器請(qǐng)求資源文件時(shí)會(huì)自動(dòng)帶一個(gè)Accept-Encoding的請(qǐng)求頭告訴服務(wù)器支持的壓縮編碼類型
- 服務(wù)器配置開啟gzip選項(xiàng):接收客戶端資源文件請(qǐng)求,查看請(qǐng)求頭Content-encoding支持的壓縮編碼格式,如果是包含gzip那么在每次響應(yīng)資源請(qǐng)求之前進(jìn)行g(shù)zip編碼壓縮后再響應(yīng)返回資源文件(在響應(yīng)頭會(huì)帶上Content-encoding: gzip)
- 瀏覽器接收到響應(yīng)后查看請(qǐng)求頭是否帶有Content-encoding:gzip,如果有進(jìn)行對(duì)返回的資源文件進(jìn)行解壓縮然后再進(jìn)行解析渲染
具體使用
1.安裝插件
npm install --save-dev compression-webpack-plugin
2.配置插件
const CompressionPlugin = require('compression-webpack-plugin');
const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i;
module.exports = {
publicPath: './',
productionSourceMap: false,
configureWebpack: {...},
chainWebpack: config => {
config.resolve.alias.set('@', resolve('src'));
if (process.env.NODE_ENV === 'production') {
config.plugin('compressionPlugin')
.use(new CompressionPlugin({
filename: '[path].gz[query]',
algorithm: 'gzip',
test: productionGzipExtensions,
threshold: 10240,
minRatio: 0.8,
deleteOriginalAssets: true
}));
}
},
};或者
const CompressionPlugin = require("compression-webpack-plugin");
const productionGzipExtensions = ['js', 'css']
module.exports = {
configureWebpack: {
// provide the app's title in webpack's name field, so that it can be accessed
// in index.html to inject the correct title.
name: name,
resolve: {
alias: {
'@': resolve('src'),
},
},
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'windows.jQuery': 'jquery',
}),
new CompressionPlugin({
algorithm: 'gzip',
test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
threshold: 10240,
minRatio: 0.8
})
],
}
}3.nginx配置
http {
gzip on; #on為啟用,off為關(guān)閉
gzip_static on;
gzip_min_length 1k; #設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù),頁(yè)面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。默認(rèn)值是0,不管頁(yè)面多大都?jí)嚎s。建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會(huì)越壓越大。
gzip_buffers 4 32k; #獲取多少內(nèi)存用于緩存壓縮結(jié)果,‘4 16k'表示以16k*4為單位獲得
gzip_http_version 1.1; #識(shí)別http協(xié)議的版本,早起瀏覽器可能不支持gzip自解壓,用戶會(huì)看到亂碼
gzip_comp_level 2; #gzip壓縮比(1~9),越小壓縮效果越差,但是越大處理越慢,所以一般取中間值;
gzip_types text/plain application/x-javascript text/css application/xml;#對(duì)特定的MIME類型生效,其中'text/html'被系統(tǒng)強(qiáng)制啟用
gzip_vary on; #啟用應(yīng)答頭"Vary: Accept-Encoding"
gzip_disable "MSIE [1-6].";#配置禁用gzip條件,支持正則。此處表示ie6及以下不啟用gzip(因?yàn)閕e低版本不支持)
}以上就是vue項(xiàng)目打包開啟gzip壓縮具體使用方法的詳細(xì)內(nèi)容,更多關(guān)于vue打包開啟gzip壓縮的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue項(xiàng)目實(shí)現(xiàn)左滑刪除功能(完整代碼)
最近在開發(fā)移動(dòng)端項(xiàng)目,通過向左滑動(dòng)出現(xiàn)刪除按鈕,點(diǎn)擊即可刪除,怎么實(shí)現(xiàn)這個(gè)功能呢,接下來(lái)小編給大家?guī)?lái)實(shí)例代碼幫助大家學(xué)習(xí)vue項(xiàng)目實(shí)現(xiàn)左滑刪除功能,感興趣的朋友跟隨小編一起看看吧2021-05-05
SpringBoot+Vue開發(fā)之Login校驗(yàn)規(guī)則、實(shí)現(xiàn)登錄和重置事件
這篇文章主要介紹了SpringBoot+Vue開發(fā)之Login校驗(yàn)規(guī)則、實(shí)現(xiàn)登錄和重置事件,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
vue實(shí)現(xiàn)在頁(yè)面上添加水印的示例代碼
這篇文章主要給大家介紹一下vue實(shí)現(xiàn)在頁(yè)面上添加水印的實(shí)例,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,感興趣的小伙伴跟著小編一起來(lái)看看吧2023-12-12
vue的簡(jiǎn)介及@vue/cli?腳手架的使用示例
vue 是一個(gè) 漸進(jìn)式的javascript框架,腳手架是一個(gè)通用概念,幫助搭建項(xiàng)目的工具,本文以vue2為例結(jié)合實(shí)例代碼給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧2022-12-12
利用Vue3 (一)創(chuàng)建Vue CLI 項(xiàng)目
這篇文章主要介紹利用Vue3 創(chuàng)建Vue CLI 項(xiàng)目,下面文章內(nèi)容附有官方文檔鏈接,安裝過程,需要的可以參考一下2021-10-10
一文了解vue-router之hash模式和history模式
這篇文章主要介紹了一文了解vue-router之hash模式和history模式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05

