vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

作者:LGGGGG 时间:2024-05-28 15:54:41 

找到nginx多网站配置文件:类似 nginx/sites-available/www.baidu.com


server {
 listen 80;
 index index.html index.htm index.nginx-debian.html;
 server_name www.baidu.com;
 location / {
   root /mnt/www/www.baidu.com;
   try_files $uri $uri/ /index.html;
 }
}

参考页面:https://router.vuejs.org/zh-cn/essentials/history-mode.html

cnpm run build 文件过大

打包生成文件:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

浏览器访问效果:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

Nginx开启gzip

找到nginx.config。关于gzip压缩代码:


http {gzip on; #开启或关闭gzip on off
gzip_disable "msie6"; #不使用gzip IE6
gzip_min_length 100k; #gzip压缩最小文件大小,超出进行压缩(自行调节)
gzip_buffers 4 16k; #buffer 不用修改
gzip_comp_level 3; #压缩级别:1-10,数字越大压缩的越好,时间也越长
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; #  压缩文件类型
gzip_vary off;  #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"
}

配置完重启Nginx

浏览器访问效果:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

上面为数据流接收大小,下面为解压后实际大小。

识别gzip与非gzip请求

gzip请求:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

非gzip请求:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

gzip与非gzip在响应头中区别就是Content-Encoding是否表明是gzip压缩格式。

而上面通过接收数据与实际数据大小相比也能明显看出差异

webpack gzip

vue项目中config/index.js


productionGzip: true, //是否开启gizp压缩
productionGzipExtensions: ['js', 'css'],

开启后cnpm run build会生成*.gz文件。

像这样:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

上传到服务器,测试查看接受文件大小。

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

gzip相应539kb。并非加载app.........gz的 412kb

删除*.gz文件,依旧539kb。

莫非,webpack打包gzip文件毫无卵用??????

gzip_static 静态压缩

经过一番百度。得一宝贝。gzip_static

什么东东呢?字面上意思就是:gzip静态。

卖个关子:

上面配置了。Nginx是可以开启gzip压缩,而且能够实现压缩效果。而它是如何工作的呢?

客户端发起请求

-》Nginx接收请求

-》Nginx加载文件进行gzip打包压缩成*.gz

-》返回给浏览器

-》浏览器解压*.gz (应该是它干的,反正看不见)

也就是说,每次请求,Nginx都会进行压缩返回、压缩返回、压缩返回、 将会导致浪费大量CPU。

这么个 * ug是谁设计的?如果请求量大,CPU会不会挂掉?//猜测

当然,并不会,gizp打包压缩后会临时缓存,

所以,能不消耗CPU就不消耗CPU。

废话太多,步入正题。放大招!!

nginx.conf


http { gzip on; #开启或关闭gzip on off gzip_static on;#是否开启gzip静态资源
gzip_disable "msie6"; #不使用gzip IE6
gzip_min_length 100k; #gzip压缩最小文件大小,超出进行压缩(自行调节)
gzip_buffers 4 16k; #buffer 不用修改
gzip_comp_level 3; #压缩级别:1-10,数字越大压缩的越好,时间也越长
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; #  压缩文件类型
gzip_vary off;  #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"
}

emmmmmmmm.....重启nginx

OK。上图!

before:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

after:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

对比文件:

vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)

so 。开启gzip_static后。流程就会变成


//偷懒写法。。。。。if(*.gz){
return *.gz //懒得压缩直接扔文件
}else{
return gzip() //压缩再扔给浏览器
}

nginx的gzip压缩力度从1-9 。如果开启过大,CPU会严重浪费,而webpack压缩gzip默认是9.因此,打包压缩gzip静态资源是很有必要的

所以,按需加载暂时不用考虑了

来源:https://www.cnblogs.com/lggggg/p/8295169.html

标签:vue,打包,加载
0
投稿

猜你喜欢

  • MySQL UPDATE时主键冲突引发的思考

    2008-06-21 17:00:00
  • 超详细的sql2005图解安装全过程第1/2页

    2024-01-24 17:11:55
  • 在Mac下使用python实现简单的目录树展示方法

    2021-03-17 03:46:39
  • windows系统下Python环境的搭建(Aptana Studio)

    2021-03-16 20:40:37
  • Mysql使用Describe命令判断字段是否存在

    2011-04-25 18:27:00
  • JS出现404错误原理及解决方案

    2024-04-28 09:41:26
  • mysql添加索引方法详解(Navicat可视化加索引与sql语句加索引)

    2024-01-24 22:32:37
  • Python爬虫利用多线程爬取 LOL 高清壁纸

    2023-02-10 15:07:25
  • python中的变量命名规则详情

    2022-05-25 17:49:06
  • PHP中phar包的使用教程

    2023-11-09 19:55:52
  • 基于Python的图像阈值化分割(迭代法)

    2022-10-23 21:25:01
  • 详解如何利用Python进行客户分群分析

    2023-04-25 16:47:09
  • Reflow

    2009-10-25 12:34:00
  • python实现求纯色彩图像的边框

    2022-04-01 22:04:51
  • 《悟透JavaScript》感谢语

    2008-11-12 12:59:00
  • Window.Open详解

    2008-06-08 13:43:00
  • Mysql调优Explain工具详解及实战演练(推荐)

    2024-01-13 07:46:43
  • Python选择网卡发包及接收数据包

    2021-10-13 12:02:10
  • 完美卸载Oracle数据库

    2024-01-18 02:50:27
  • python装饰器实现对异常代码出现进行自动监控的实现方法

    2021-05-29 16:52:13
  • asp之家 网络编程 m.aspxhome.com