vue-cli 启动gzip压缩,及后台配置

#vue单页面应用,经常会遇到首页加载过慢的状况javascript

  vue-cli中只需开启gzip压缩,会将原来的代码再次压缩50%以上php

  vue项目中配置方法:config/index.jscss

     固然不要忘记下载上面提示的插件:html

npm install --save-dev compression-webpack-plugin
复制代码

#后台配置方法vue

 ## Nginx开启gzipjava

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

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"
}复制代码

gzip使用环境:http,server,location,if(x),通常把它定义在nginx.conf的http{…..}之间webpack

  • gzip on
    on为启用,off为关闭
  • gzip_min_length 1k
    设置容许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,无论页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。
  • gzip_buffers 4 16k
    获取多少内存用于缓存压缩结果,‘4 16k’表示以16k*4为单位得到
  • gzip_comp_level 5
    gzip压缩比(1~9),越小压缩效果越差,可是越大处理越慢,因此通常取中间值;
  • gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php
    对特定的MIME类型生效,其中'text/html’被系统强制启用
  • gzip_http_version 1.1
    识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码
  • gzip_vary on
    启用应答头"Vary: Accept-Encoding"
  • gzip_proxied off
    nginx作为反向代理时启用,off(关闭全部代理结果的数据的压缩),expired(启用压缩,若是header头中包括"Expires"头信息),no-cache(启用压缩,header头中包含"Cache-Control:no-cache"),no-store(启用压缩,header头中包含"Cache-Control:no-store"),private(启用压缩,header头中包含"Cache-Control:private"),no_last_modefied(启用压缩,header头中不包含"Last-Modified"),no_etag(启用压缩,若是header头中不包含"Etag"头信息),auth(启用压缩,若是header头中包含"Authorization"头信息)
  • gzip_disable msie6
    (IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩 )指定哪些不须要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库

以上代码能够插入到 http {...}整个服务器的配置里,也能够插入到虚拟主机的 server {...}或者下面的location模块内nginx

 ## node端web

    只要加上compress模块便可,代码

var compression = require('compression')
var app = express();

//尽可能在其余中间件前使用compression
app.use(compression());// 这是基本用法,若是还要对请求进行过滤的话,还要加上app.use(compression({filter: shouldCompress}))

function shouldCompress (req, res) {
  if (req.headers['x-no-compression']) {
    // 这里就过滤掉了请求头包含'x-no-compression'
    return false
  }

  return compression.filter(req, res)
}复制代码

##tomcat

   tomcat的配置以下

找到tomcat的server.xml文件,找到其中Connector节点而后进行配置修改,具体配置以下

<Connectorport="80"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" maxPostSize="0" useBodyEncodingForURI="true"compression="on" compressionMinSize="2048"noCompressionUserAgents="gozilla, traviata"compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,image/jpeg,application/json"/>复制代码

参数说明:

  • compression="on" 打开压缩功能
  • compressionMinSize="2048" 启用压缩的输出内容大小,当被压缩对象的大小>=该值时才会被压缩,这里面默认为2KB
  • noCompressionUserAgents="gozilla, traviata" 对于如下的浏览器,不启用压缩
  • compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 压缩类型

注意:tomcat7之后,js文件的mimetype类型变为了application/javascript,而在tomcat7如下则为text/javascript;具体的tomcat7定义的类型能够在:conf/web.xml文件中找到。

能够在web.xml下搜索,如我搜索javascript会找到以下代码

<mime-mapping>
    <extension>js</extension>
    <mime-type>application/javascript</mime-type>
</mime-mapping>复制代码
相关文章
相关标签/搜索