vue首屏加载优化(IIS开启GZIP功能)

vue 使用webpack开启gzip压缩,前端将文件打包成.gz文件

vue项目安装webpack

1
npm install webpack -g --全局安装webpack

 

vue.config.js文件添加一下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//vue.config.js
 configureWebpack:config => {
    if(process.env.NODE_ENV === "production"){
      return {
        plugins:[
          new CompressionPlugin({
            algorithm: 'gzip', // 使用gzip压缩
            test: /\.js$|\.html$|\.css$/, // 匹配文件名
            filename: '[path].gz[query]', // 压缩后的文件名(保持原文件名,后缀加.gz)
            minRatio: 0.8,
            threshold: 10240, // 对超过10k的数据压缩,一般都会选择大于1字节的进行压缩,小于1字节可能压缩后反而体积更大了
            deleteOriginalAssets: false, // 是否删除未压缩的源文件,谨慎设置,如果希望提供非gzip的资源,可不设置或者设置为false(比如删除打包后的gz后还可以加载到原始资源文件)
          }),
        ]
      }
    }
  },

 

使用gzip压缩效果

 

 

把打包好的静态文件部署在服务器,使用链接访问网页,发现加载时间需要十几秒

 

 

我的服务器是Windows,习惯使用IIS部署网站,以下为使用IIS开启GZIP

打开IIS管理工具,在右键网站打开网站属性,在服务选项卡中开启HTTP压缩,不建议选中压缩应用程序文件,但一定要选上压缩静态文件,不然就等于没有压缩,达不到负载均衡了。

  1. 然后选中我那个站下面那个服务器扩展,新建一个服务器扩展,名字为GZIP,下面的添加文件路径为:c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。
  2. 我们要修改配置文件,在配置文件之前要停止IIS服务,(提醒大家一定要先关闭IIS服务)打开C:\Windows\System32\inetsrv\MetaBase.xml,这个文件很大,找到下面一段信息

1
<IIsCompressionScheme   Location ="/LM/W3SVC/Filters/Compression/gzip"<br>                <br><br>HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"<br>            <br><br>HcCreateFlags="1"<br><br><br>            HcDoDynamicCompression="TRUE"<br>            <br><br>HcDoOnDemandCompression="TRUE"<br><br><br>            HcDoStaticCompression="TRUE"<br>            <br><br>HcDynamicCompressionLevel="6"<br>            <br><br>HcFileExtensions="htm<br><br>html<br><br>txtjscss"<br><br><br>            HcOnDemandCompLevel="10"<br>            <br><br>HcPriority="1"<br><br><br>            HcScriptFileExtensions="asp<br><br>dll<br><br>exe"<br><br>><br><br><br></IIsCompressionScheme><br><IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/deflate"<br>        HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"<br>        HcCreateFlags="0"<br>        HcDoDynamicCompression="TRUE"<br>        HcDoOnDemandCompression="TRUE"<br>        HcDoStaticCompression="true"<br>        HcDynamicCompressionLevel="9"<br>        HcFileExtensions="htm<br>                     html<br>                     txt<br>                     js<br>                     css <br>                     swf<br>                     xml"<br>        HcOnDemandCompLevel="9"<br>        HcPriority="1"<br>        HcScriptFileExtensions="asp <br>            aspx<br>            dll<br>            exe"<br>    ><br></IIsCompressionScheme><br><IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/gzip"<br>        HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"<br>        HcCreateFlags="1"<br>        HcDoDynamicCompression="TRUE"<br>        HcDoOnDemandCompression="TRUE"<br>        HcDoStaticCompression="true"<br>        HcDynamicCompressionLevel="9"<br>        HcFileExtensions="htm<br>                     html<br>                     txt<br>                     js<br>                     css <br>                     swf<br>                     xml"<br>        HcOnDemandCompLevel="9"<br>        HcPriority="1"<br>        HcScriptFileExtensions="asp <br>            aspx<br>            dll<br>            exe"<br>    ><br></IIsCompressionScheme>

 

修改这个文件是要增加一些要进行压缩的文件后缀,其中 HcFileExtensions 是静态文件的扩展名,增加 js 和 css 等;HcScriptFileExtensions 为动态文件的扩展名,增加 aspx,HcDynamicCompressionLevel改成9,(0-10,6是性价比最高的一个)。

重启一下IIS服务

 

服务端配置压缩环境后,再次访问网址,页面加载时间已经降低到了4秒多

 

 

 

 

 

 


 

 

 

posted @   编程民工  阅读(568)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示