Tomcat启动gzip压缩来解决vendor.js过大页面加载慢的问题

        在部署ionic项目的时候,发现vendor.js文件过大,达到了1.6M,h5页面需要加载十五秒才能显示出来。这显然是不能接受的。

按照网上的指导,更换了ionic的大包方式,由

ionic build --prod

改为了

ionic cordova build browser --prod

按理说忽略了没用的js文件,vendor.js应该变小的,可是并没有生效。仍然是1.6M。所以,只能从容器层面下手了。在网上看了多篇博客,七零八碎,所以我自己总结记录。

tomcat 启动gzip压缩

<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" 
	useSendfile="false"
	compression="on"   
	compressionMinSize="1024" 
	noCompressionUserAgents="gozilla, traviata" 
compressableMimeType="application/json,application/xml,text/html,text/xml,text/plain,application/javascript,font/ttf,image/jpg,image/png,image/gif"
	/>

各种属性介绍:

  • compression="on"  打开压缩功能
  • compressionMinSize="1024" 启用压缩的输出内容大小,大于1024K才启动压缩,默认为2KB
  • noCompressionUserAgents="gozilla, traviata"  对于以下的浏览器,不启用压缩
  • compressableMimeType="application/json,application/xml,text/html,text/xml,text/plain,application/javascript,font/ttf,image/jpg,image/png,image/gif" 哪些资源类型需要压缩
  • useSendfile="false"  这个属性至关重要,tomcat默认设置是当数据大小达到48kb时,将启用文件传输(sendfile),所以我们想要压缩超过48kb的数据时必须将useSendfile设置为false。如果这个属性没设置,那么上边4个属性的设置就全都会失效。

注意,以上开启gzip压缩的配置在tomcat8以前不生效。
原因:tomcat7以后,js文件的mimetype类型变为了application/javascript

所以Tomcat8以前,需要将compressableMimeType中的“application/javascript”写为“text/javascript”

同时注意,如果Tomcat被nginx或其他代理软件所代理。项目访问路径直接访问的nginx,那你仍需要将nginx的gzip启动。只有直接访问Tomcat,以上的配置才生效。

文章中有部分内容摘自其他博客,如有侵权请告知。定会删除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值