vue如何开启gzip压缩

什么是gzip:

Gzip 是一种压缩算法,在网络传输中使用非常普遍。

需要注意的是,Gzip 压缩仅对于文本类型的资源有明显提示,压缩后的体积大约是压缩前的 1/3。

但是对于图片,音视频等媒体资源,本身就采用了有损压缩,所以再使用 gzip 并不能得到很大提升,有时候反而会适得其反。

前端项目,打包出的 js,css资源,非常适合使用 gzip 进行压缩。

这样,用户浏览器收到服务器返回的 gzip 类型资源时,会自动解压缩。这样,既能减少带宽的损耗,也能加快资源传输的时间。

技术栈:vue3  vite  

首先下载依赖:

cnpm install vite-plugin-compression -D

然后在vite.config.js里进行插件配置用于打包时候,压缩出gzip文件

export default defineConfig({
	plugins: [
		viteCompression({
        filter: /.(js|css|html|json|mjs|png|jpg|jpeg|svg)$/i,  // 这些文件都要压缩
        threshold: 10240, // 文件容量大于这个值进行压缩 单位b  1b=8B  1B=1024KB
        algorithm: 'gzip', // 压缩方式
        ext: 'gz', // 后缀名
        deleteOriginFile: false, // 压缩后是否删除压缩源文件
      }),
	]
})

接下来打包就好了,打包后如下图

 接下来是配置nginx:

##
	# Gzip Settings
	##

    #开启gzip功能
	gzip on;
	
	#开启gzip静态压缩功能
    gzip_static on;

    # 是否在http header中添加Vary: Accept-Encoding,**一定要开启,不开启读取不到.gz结尾的压缩文件**
	 gzip_vary on;
	
	#设置是否对代理服务器的响应进行压缩。
	 #gzip_proxied any;
	
	#gzip 压缩级别 1-10 
	 gzip_comp_level 6;
	
	#gzip缓存大小
	 gzip_buffers 16 8k;
	
	#gzip http版本
	 gzip_http_version 1.1;
	
	#gzip 压缩类型
	 gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

一定要设置gzip_vary on;否则打包后的html引入的文件里面是以.js/.css结尾,而压缩文件又是以.js.gz/.css.gz结尾,会导致引入报错!!!

接下来项目部署上线后,可以通过network查看是否gzip设置成功

 

如果你们network没有这一项,那么右键点击下图红框位置  选择 响应头 ===》content-Encoding ,如果显示有gzip字样那么就说明gzip配置成功。

下方两个图一个是我下载了 vite-plugin-compression 压缩打包的项目另一个是并未下载插件和打包,但是这两个项目都用了Nginx

 发现其中一个Etag是以w开头,

因为我们Nginx开起来实时压缩,也就是说如果前端没有做gzip压缩直接部署,那么Nginx也会实时压缩成gzip并发给浏览器。但是会消耗cpu资源,该方式下响应头中Etag属性会有’W\’的字样

优化程度:

配置gzip压缩后访问项目:

压缩之前:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/167690.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

lvm操作和扩容根分区

扩展逻辑卷 [rootlocalhost ~]# pvcreate /dev/sdb1 vgextend vg1 /dev/sdb1(表示将/dev/sdb1扩展到centos卷组,扩展卷组就是将其它分好的区加入卷组) [rootlocalhost ~]# vgextend centos /dev/sdb1[rootlocalhost ~]# lvextend -L 50G /…

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解 文章目录 【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解前言MobleNet_V2讲解反向残差结构(Inverted Residuals)兴趣流形(Manifold of interest)线性瓶颈层…

德思特分享丨一文带你了解ADC测试参数有哪些?

来源:德思特测量测试 德思特分享丨一文带你了解ADC测试参数有哪些? 一文带你了解ADC测试参数有哪些 模数转换器(ADC)是数字电子系统中重要组成部分,用于捕获外部世界的模拟信号,如声音、图像、温度、压力…

修改bat文件默认编辑软件

Windows默认编辑bat文件的软件是自带的文本编辑器。无法高亮显示bat中的命令。 修改方式一: 打开注册表文件,变更键值 HKEY_CLASSES_ROOT\batfile\shell\edit\command 对应软件地址 修改方式二: 制作批处理文件,代码如下&#x…

【Highway-env】IntersectionEnv代码阅读

文章目录 主要完成任务代码结构1.action space2.default_config3.reward_agent_rewards_agent_reward_reward_rewards小结 4.terminated & truncated5.reset_make_road_make_vehicles_spawn_vehicle 6.step 主要完成任务 IntersectionEnv继承自AbstractEnv,主要完成以下4个…

Oracle数据库透明加密 安当加密

安当TDE透明加密组件是一种用于数据保护的解决方案,它对数据进行加密,以防止未经授权的访问和数据泄露。 以下是安当TDE透明加密组件的主要功能介绍: 数据保护:安当TDE透明加密组件可以对数据库中的敏感数据进行加密,…

基于springboot实现大学生就业服务平台系统项目【项目源码】

基于springboot实现大学生就业服务平台系统演示 Java技术 Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著…

深度学习人脸表情识别算法 - opencv python 机器视觉 计算机竞赛

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习人脸表情识别系…

如何构建更简洁的前端架构?

目录 为什么需要前端架构? 那么,前端架构是什么样的呢? 使用了哪些层? 那么,这种架构会出什么问题呢? 我们应该如何避免这些错误? 哪些原则应适用于组件? Anti-Patterns 反模…

HCIA-实验命令基础学习:

视频学习: 第一部分:基础学习。 19——子网掩码。 27——防火墙配置: 32——企业级路由器配置: 基础实验完成:(完成以下目录对应的实验,第一部分基础实验就完成。) 方法&#xff…

儿童家居服 I 童年很短,请尽情打扮吧

厚实细腻的双面北极绒面料 软糯亲肤,上身效果极佳 经典宽松版型,对身材的包容性很强 帽子上的小熊刺绣精致又可爱 袖口处还有小熊掌的刺绣哦 满满的少女心,也太适合女宝宝了 松紧裤腰和束脚设计,防风保暖做到实处 这么好看…

【数据结构&C++】超详细一文带小白轻松全面理解 [ 二叉平衡搜索树-AVL树 ]—— [从零实现&逐过程分析&代码演示简练易懂]

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.AVL树的概念二.AVL树节点的定义(代码…

Python开源自动化工具Playwright安装及介绍

一个非常强大的自动化项目叫 playwright-python 它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,可以结合 Pytest 测试框架 使用&…

IPO解读丨高处不胜寒,澜沧古茶低头取暖?

自A股注册制改革不断深化并全面落地后,不少意欲登陆资本市场的企业转战港股。这个过程中,诞生了很多以“港股”为前缀的“第一股”——“白酒第一股”珍酒李渡、“水果零售第一股”百果园、“智能驾驶第一股”知行汽车、“运动科技第一股”Keep…… 由A…

STM32与ADXL345加速度计的无线传输与监测应用

ADXL345是一款三轴数字输出加速度计,能够测量出物体在三个方向上的加速度。本文将介绍如何将ADXL345加速度计与STM32微控制器结合使用,通过无线通信技术实现加速度数据的传输与监测。 一、ADXL345与STM32概述 1. ADXL345加速度计 ADXL345是一款低功耗…

VB.net读写S50/F08IC卡,修改卡片密码控制位源码

本示例使用设备:Android Linux RFID读写器NFC发卡器WEB可编程NDEF文本/智能海报/-淘宝网 (taobao.com) 函数声明 Module Module1读卡函数声明Public Declare Function piccreadex Lib "OUR_MIFARE.dll" (ByVal ctrlword As Byte, ByRef serial As Byte, …

servlet乱码问题

问题:中文乱码 解决:加框的部分

给折腿的罗技G512键盘换键帽

文章目录 1\. 引言2\. 操作2.1. 用打火机烤2.2. 用钳子拔出来2.2.1. 拔出成功2.2.2. 放大细看2.3. 更换键帽 1. 引言 G512的轴采用的是塑料连接,特别容易腿折在里面,换着的时候,得先把这个卡在里面的塑料腿拿出来才行 放大效果图 2. 操作 可…

用js切割文字,超出省略

因为项目需要,当人员超过两个事则进行超出省略,如将一个 “张三,李四,王五”,这样的字串切割成"张三,李四…" 效果: 主要用的是基础的切割法 isOutlier(text) {if (!text || text "") return;const parts text.split(","); // 使用逗号将字…

电力感知边缘计算网关产品设计方案-业务流程设计

1.工业数据通信流程 工业数据是由仪器仪表、PLC、DCS等工业生产加工设备提供的,通过以太网连接工业边缘计算网关实现实时数据采集。按照现有的通信组网方案,在理想通信状态下可以保证有效获取工业数据的真实性和有效性。 边缘计算数据通信框架图: 2.边缘计算数据处理方案 …