≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > vue.js

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

人气:393 时间:2019-04-08

这篇文章主要为大家详细介绍了vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐),具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

  找到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 文件过大

 

  打包生成文件:

  【q1010.com温馨提示:图片暂缺】

  浏览器访问效果:

  【q1010.com温馨提示:图片暂缺】

 

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

 

  浏览器访问效果:

  【q1010.com温馨提示:图片暂缺】

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

 

识别gzip与非gzip请求

 

  gzip请求:

  【q1010.com温馨提示:图片暂缺】

  非gzip请求:

  【q1010.com温馨提示:图片暂缺】

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

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

 

webpack gzip

 

  vue项目中config/index.js

代码如下:


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

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

像这样:

  【q1010.com温馨提示:图片暂缺】

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

  【q1010.com温馨提示:图片暂缺】

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

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

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

 

gzip_static 静态压缩

 

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

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

  卖个关子:

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

    客户端发起请求

      -》Nginx接收请求

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

          -》返回给浏览器

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

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

    这么个大bug是谁设计的?如果请求量大,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:

  【q1010.com温馨提示:图片暂缺】

  after:

  【q1010.com温馨提示:图片暂缺】

  对比文件:

  【q1010.com温馨提示:图片暂缺】

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

代码如下:


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

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

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

  

本文来自:http://www.q1010.com/184/4031-0.html

注:关于vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:vue.js

您可能感兴趣的文章

  • vuejs实现递归树型菜单组件
  • vue.js整合vux中的上拉加载下拉刷新实例教程
  • web前端vue filter 过滤器
  • vue2.0 如何把子组件的数据传给父组件(推荐)
  • 如何去除vue项目中的#及其ie9兼容性
  • Vuex提升学习篇
  • Vuex 进阶之模块化组织分析
  • 动态Axios的配置步骤分析
  • 分析基于vue-cli配置移动端自适应
  • 浅谈vue的props,data,computed变化对组件更新的影响
上一篇:vue2.0 兄弟组件(平级)通讯的实现代码
下一篇:vue2.0 如何把子组件的数据传给父组件(推荐)
热门文章
  • Vue 报错TypeError: this.$set is not a function 的解决方法
  • vue实现动态添加数据滚动条自动滚动到底部的示例代码
  • vue项目设置scrollTop不起作用(总结)
  • vue项目中使用vue-i18n报错的解决方法
  • iview实现select tree树形下拉框的示例代码
  • 分析关于element级联选择器数据回显问题
  • vue项目打包后打开页面空白解决办法
  • 解决element ui select下拉框不回显数据问题的解决
  • element-ui table span-method(行合并)的实现代码
  • element-ui 设置菜单栏展开的方法
  • 最新文章
    • 理解vue ssr原理并自己搭建简单的ssr框架
    • vue favicon设置以及动态修改favicon的方法
    • vue-router启用history模式下的开发及非根目录部署方法
    • 从零开始在NPM上发布一个Vue组件的方法步骤
    • Element input树型下拉框的实现代码
    • Vue 报错TypeError: this.$set is not a function 的解决方法
    • Vue.js组件高级特性实例分析
    • 浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
    • 分析Vue.js自定义tipOnce指令用法实例
    • 浅谈vuex actions和mutation的异曲同工

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。