欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

webpack插件compression-webpack-plugin配合nginx进行gzip压缩,提高http请求速度

程序员文章站 2024-03-12 23:51:56
...

背景:

gzip是一种文件压缩格式,浏览器可以自动解压这种格式,服务器返回的是gzip的格式文件时,response的头部会有

Content-Encoding: gzip 这样的头部告诉浏览器:“我返回的是gzip格式文件,你要用对应的方法去解压它”

方式:

有两种方式可以让服务器返回的资源是gzip压缩文件:

一、在服务器端开启压缩http请求的目标文件,比如nginx(我只会nginx),在nginx的配置文件里开启下面的配置,当http请求资源的时候,服务器就会将资源压缩后再传输给浏览器。但是这是要消耗cpu资源的。

gzip:on

二、第二种方式预先将资源压缩成gzip格式,再放入服务器里。前端使用webapck的插件compression-webpack-plugin来在打包时压缩文件 。了解 compression-webpack-plugin

npm install compression-webpack-plugin --save-dev

在webpack的plugins里配置:

new CompressionWebpackPlugin({
 filename: '[path].gz[query]', //压缩后的文件名
 algorithm: 'gzip’, // 压缩格式 有:gzip、brotliCompress、
 test: /\.(js|css|svg)$/,
 threshold: 10240,// 只处理比这个值大的资源,按字节算
 minRatio: 0.8, //只有压缩率比这个值小的文件才会被处理,压缩率=压缩大小/原始大小,如果压缩后和原始文件大小没有太大区别,就不用压缩
 deleteOriginalAssets: false //是否删除原文件,最好不删除,服务器会自动优先返回同名的.gzip资源,如果找不到还可以拿原始文件
})

 然后执行打包命令,压缩后的文件都有.gzip的后缀。

同时nginx也要加上下面的配置,这是让nginx根据http请求优先返回gzip的文件。

gzip_static: on

 根据第二种方式, 服务器就不必消耗cpu来压缩资源了。

压缩前的大小792KB: 

 webpack插件compression-webpack-plugin配合nginx进行gzip压缩,提高http请求速度

压缩后的大小217KB:

webpack插件compression-webpack-plugin配合nginx进行gzip压缩,提高http请求速度 

 

 

相关标签: webpack