Vue 项目开启 gzip

news2024/11/17 1:01:13

1. 压缩方式:

  1. Nginx 开启压缩:当浏览器发起请求时,服务端对传输资源进行实时压缩,然后返回给浏览器;
  2. 前端配置打包压缩并在服务端加上支持 gizp 的配置:当浏览器请求时,服务端直接将压缩资源返回给浏览器。

2. 区别:

  • 第一种是服务端进行实时压缩,对服务器的性能消耗较大;
  • 第二种则是打包后的 dist 文件包体积比较大(因为包含 .gz 文件和源文件)。

3. 配置

  1. 第一种:在 Nginx 开启压缩

    # 开启服务器实时gzip
    gzip on;
    
    # 开启静态gz文件返回
    gzip_static on;
    
    # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
    gzip_min_length 1k;
    
    # 设置压缩所需要的缓冲区大小
    gzip_buffers 32 4k;
    
    # 设置gzip压缩针对的HTTP协议版本
    gzip_http_version 1.0;
    
    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
    gzip_comp_level 7;
    
    # 进行压缩的文件类型。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,建议开启
    gzip_vary on;
    
    # 禁用IE 6 gzip
    gzip_disable "MSIE [1-6]\.";
    
  2. 第二种:前端配置打包压缩

  • 首先,安装插件:npm i -D compression-webpack-plugin@5.0.2(建议安装这个版本,最新版本会报错)

  • 然后在 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].gz[query]", // 压缩后的文件名
              algorithm: "gzip", // 使用gzip压缩
              test: /\.js$|\.css$/, // 匹配文件名
              threshold: 5120, // 对超过5k的数据压缩
              minRatio: 1, // 压缩率小于1才会压缩
              deleteOriginalAssets: false, // 是否删除未压缩的源文件,谨慎设置,如果希望提供非gzip的资源,可不设置或者设置为false(比如删除打包后的gz后还可以加载到原始资源文件)
            })
          );
        }
      },
    };
    
  • 打包后,文件中会出现 .gz 文件,如图:
    在这里插入图片描述

  • 检查一下 nginx 服务端配置是否支持 gzip ,如果不支持,则需加上如下配置:

    location /yourproject {
      alias  /work/yourproject/dist;
      autoindex on;
      # 在nginx配置静态资源开启gzip,这样静态资源有gz包会自动加载
      gzip_static on;
    }
    

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟化 之一 详解 jailhouse 架构及原理、软硬件要求、源码文件、基本组件

Jailhouse 是一个基于 Linux 实现的针对创建工业级应用程序的小型 Hypervisor,是由西门子公司的 Jan Kiszka 于 2013 年开发的,并得到了官方 Linux 内核的支持,在开源社区中获得了知名度和吸引力。 Jailhouse Jailhouse 是一种轻量级的虚拟化…

如何用Suno生成高质量歌曲:从前奏到尾奏的全流程解析

音乐创作的新时代:探索SUNO的无限可能 随着技术的不断进步,音乐创作正迎来一场革命。今天,让我们一起探索SUNO,这个创新的音乐生成工具,它将如何帮助我们释放创作潜力。 一、歌曲结构基础知识 了解歌曲结构是创作高质…

SprringCloud Gateway动态添加路由不重启

文章目录 前言:一、动态路由必要性二、SpringCloud Gateway路由加载过程RouteDefinitionLocator接口PropertiesRouteDefinitionLocator类DiscoveryClientRouteDefinitionLocatorInMemoryRouteDefinitionRepositoryCompositeRouteDefinitionLocator类CachingRouteDef…

maven学习小结

背景 大佬指路我负责实践 目录结构 maven为项目提供一个标准目录结构 环境配置 下载maven包后解压,配置解压目录的bin到path变量,然后终端mvn -v,有回显则表明maven安装成功 pom POM,Project Object Model,项目对…

计算机基本架构-时序逻辑电路回顾

计算机基本架构-时序逻辑电路回顾 D锁存器(D-Latch)D触发器(D-Flip-Flop)时序违规寄存器移位寄存器计数器摩尔状态机(Moore machine)米利状态机内存 计算机基本架构-时序逻辑电路回顾 D锁存器(D-Latch) D锁存器(D-Latch)是逻辑设计中最基本的存储元件。它具有数据输入D、时…

el-table有横向滚动条时,最后一行数据被横向滚动条遮挡,且不出现纵向滚动条;只有当鼠标移到fixed列才能纵向滚动,移到非fixed列无法纵向滚动。

问题背景 项目使用的vue2,el-table有横向滚动条时,最后一行数据被横向滚动条遮挡,且不出现纵向滚动条;只有当鼠标移到fixed列才能纵向滚动,移到非fixed列无法纵向滚动。 见下图:最后一行被遮挡住了一部分…

数字的魅力:数学中最重要的7个常数

数学常数是数学中一类特殊的数,具有固定不变的值。这些常数并非数学家随意凭空制定,而是源于深刻的数学原理和规律。它们不仅深刻地影响着数学理论的建立与发展,更连接着人类思维的奇妙之旅。 本文将简介数学中 7 个最基本的常数&#xff0c…

AI和机器学习论文中 指标F1是什么意思

在AI和机器学习领域的实验中,F1值(F1 Score)是一种用于评估分类模型性能的指标。它是精确率(Precision)和召回率(Recall)的调和平均数,特别适用于不平衡数据集。F1值综合了精确率和召…

JVM原理之运行时数据区域

Java运行时数据区(Runtime Data Area)是Java虚拟机(JVM)在运行Java程序时内部维护的一系列数据区域。这些区域共同协作,确保Java程序能够高效、稳定地运行。本文将详细介绍Java运行时数据区的结构和作用。 java虚拟机运行时数据区域 根据《Java虚拟机规范》规定,jvm内存…

华为云EI生态

1、人工智能技术趋势 2、华为AI发展思路 3、华为云EI:让企业更智能 4、华为云服务全景图 5、基础平台类服务 6、MLS:解决特性到模型应用的完整过程 7.DLS 8.GES超大规模一体化图分析与查询 9、EI视觉认知 10、EI语音语义 11、OCR:提供高精度光学文字自动…

工业操作系统是企业把舵的“仪表盘”

supOS向下连接海量工业设备、仪器、仪表、产品,为各类设备提供统一的接口,实现不同设备之间的互联互通;向上连接各类工业应用软件,将企业内部的生产数据、运营数据、管理数据汇集起来,是链接海量工业设备和各类应用软件…

第17章通信系统架构设计理论与实践

常见的5种常用的网络架构和构建网络的相关技术,以及网络构建的分析和设计方法。 17.1通信系统概述 通信技术和网络技术的发展,通信网络发生很大变化,入网的形式变化,传输的速率的提高、接入网络的方式多样化、网络结构的更为复杂…

将 x 减到 0 的最小操作数

题⽬要求的是数组「左端右端」两段连续的、和为 x 的最短数组&#xff1b;我们可以转化成求数组内⼀段连续的、和为 sum(nums) - x 的最⻓数组。 a. 转化问题&#xff1a;求 target sum(nums) - x 。如果 target < 0 &#xff0c;问题⽆解&#xff1b; b. 初始化左右指针 …

LogicFlow 学习笔记——3. LogicFlow 基础 节点 Node

节点 Node LogicFlow 内置了一些基础节点&#xff0c;开发者在实际应用场景中&#xff0c;可以基于这些基础节点&#xff0c;定义符合自己业务逻辑的节点。 认识基础节点 LogicFlow是基于svg做的流程图编辑框架&#xff0c;所以我们的节点和连线都是svg基本形状&#xff0c;…

MySQL查询优化最佳实践15条(建议收藏)

目录 1 优化方法&#xff08;15条&#xff09; 2 总结 MySQL的数据库常规查询的过程中性能的优化非常重要&#xff0c;其中很多点是和开发习惯有关&#xff0c;能熟练掌握不只能提高工作的效率&#xff0c;同时也能提高个人的技能。有一些优化的技巧同样也适合于其他的数据库…

git的ssh安装,windows通过rsa生成密钥认证问题解决

1 windows下载 官网下载可能出现下载太慢的情况&#xff0c;Git官网下载地址为&#xff1a;官网&#xff0c;推荐官网下载&#xff0c;如无法下载&#xff0c;可移步至CSDN&#xff0c;csdn下载地址&#xff1a;https://download.csdn.net/download/m0_46309087/12428308 2 Gi…

Tabby:一款革新的Mac/Win现代化终端模拟器

在信息技术日新月异的今天&#xff0c;终端操作已成为众多开发者、系统管理员和技术爱好者的日常必备工具。然而&#xff0c;传统的终端模拟器往往功能单一、界面陈旧&#xff0c;无法满足用户对于高效、便捷操作体验的追求。Tabby应运而生&#xff0c;作为一款现代化、功能强大…

6大好用的变音软件推荐,最好用的变声器免费版有哪些?

您在录制视频时&#xff0c;是否曾对自己的声音感到厌烦&#xff1f;有没有想过换一种声音让别人认不出您&#xff1f;变声软件允许你通过先进的AI算法改变声音。它可以增加所需的失真度、调整音高并改变语音的音调&#xff0c;从而将你的声音变为名人、机器人或卡通人物的声音…

C# WPF入门学习主线篇(二十一)—— 静态资源和动态资源

C# WPF入门学习主线篇&#xff08;二十一&#xff09;—— 静态资源和动态资源 欢迎来到C# WPF入门学习系列的第二十一篇。在上一章中&#xff0c;我们介绍了WPF中的资源和样式。本篇文章将深入探讨静态资源&#xff08;StaticResource&#xff09;和动态资源&#xff08;Dynam…

立创·天空星开发板-GD32F407VE-Timer

本文以 立创天空星开发板-GD32F407VET6-青春版 作为学习的板子&#xff0c;记录学习笔记。 立创天空星开发板-GD32F407VE-Timer 定时器基本定时器示例 定时器 定时器是嵌入式系统中常用的一种外设&#xff0c;它可以产生一定的时间间隔、延时、定时等功能&#xff0c;广泛应用于…