原文:juejin.cn/post/7101663374957608974
基于目前大部分的利用,都应用了前后端拆散的框架,vue的前端利用,也是非常的风行。不晓得大家有无遇到这样的问题:
随着前端框架的页面,性能开发一直的迭代;装置的依赖,一直的增多;
这样导致的问题,就是咱们的前端框架,会变得非常宏大,打包进去的dist目录会变得很大了喔!!!
这样就会导致一个问题:首次拜访利用,会变得很慢!!!
这的确是一个重大的问题!!!T_T
对于这个问题,咋们明天就从代码压缩+nginx动态资源压缩,两个方面进行钻研解决!!!
nginx动态资源动静压缩
- nginx开启gzip压缩
server { listen 80; listen [::]:80; server_name localhost; server_tokens off; # 开启gzip压缩 gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain application/css text/css application/xml text/javascript application/javascript application/x-javascript; #llsydn 前端 location /jxbp { alias /opt/llsydn/jxbp; index index.html; try_files $uri $uri/ /dist/index.html; } }
而后重启nginx:nginx -s reload
看看是否曾经失效!!!
- 压缩的效果图
- 没有压缩的效果图
从下面两张图能够看到:
- 第一张通过压缩:finish工夫为2.36s,transferred为7.6MB
- 第二张没有压缩:finish工夫为6.32s,transferred为24.6MB
很显著,通过了nginx的动态资源压缩,访问速度进步了,显著的!!!
看到这,咋们会有这样的一个问题,这压缩都是nginx干的活,那当访问量变大,那对于nginx的压力,是非常大的,毕竟都是动静压缩的!!!
那有无解决办法呢?
nginx动态资源动静压缩的原理,无非就帮咱们将js、css等文件,压缩为一个.gz文件,而后传输给前端浏览器,进行解析。说到这,咋们不禁会说:那咋们先将js、css等文件,生成对应的.gz文件,不就不须要nginx动静压缩了嘛?如同是这么一回事!!!
蠢才呀!!!
nginx动态资源动态压缩
- 将js、css等文件,生成对应的.gz文件
这个,就能够借助一些依赖进行解决了:compression-webpack-plugin
装置依赖:
npm install compression-webpack-plugin -D
- vue.config.js
const CompressionWebpackPlugin = require('compression-webpack-plugin')const productionGzipExtensions = ['js', 'css']vueConfig.configureWebpack.plugins.push(new CompressionWebpackPlugin({ test:/.js$|.html$|.\css/, // 匹配文件名 threshold: 1024, // 对超过1k的数据压缩 deleteOriginalAssets: false // 不删除源文件}))
打包:
npm run build
能够看到,曾经帮咱们生成对应的.gz文件了!!!
- nginx配置
在下面的根底上,再加上
gzip_static on
- nginx得装置上面得模块:
ngx_http_gzip_module模块ngx_http_gzip_static_module模块ngx_http_gunzip_module模块
- nginx开启gzip压缩
server { listen 80; listen [::]:80; server_name localhost; server_tokens off; # 开启gzip压缩 gzip on; gzip_static on gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain application/css text/css application/xml text/javascript application/javascript application/x-javascript; #llsydn 前端 location /jxbp { alias /opt/llsydn/jxbp; index index.html; try_files $uri $uri/ /dist/index.html; } }
而后重启nginx:nginx -s reload
看看是否曾经失效!!!
- 动态压缩
- 动静压缩
好了,nginx的动态压缩,就到这里了!!!
近期热文举荐:
1.1,000+ 道 Java面试题及答案整顿(2022最新版)
2.劲爆!Java 协程要来了。。。
3.Spring Boot 2.x 教程,太全了!
4.别再写满屏的爆爆爆炸类了,试试装璜器模式,这才是优雅的形式!!
5.《Java开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞+转发哦!