在使用Extjs写项目的时候,有一个问题就是需要想前台传送的js文件太大,即使是使用sencha cmd工具压缩后也有2M左右的大小,这在内网使用还可以,但如果在外网有时候就比较慢了。
这个问题的一个解决办法就是通过Tomcat的gzip压缩功能,在向前台传送较大的文件时压缩后再传送,压缩的比例还是挺大的。app.js压缩前2M,压缩后500kb。
开启tomcat的gzip压缩功能的方法是修改conf/server.xml中的配置。
修改前
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改后
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />
其中compression="on"
代表着开启压缩功能。compressionMinSize="2048"
为启用压缩的最小大小,默认为2kb,即大于2kb就启用压缩。noCompressionUserAgents="gozilla, traviata"
表示对于这些浏览器不启用压缩。compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
表示对这些类型的文件启用压缩。
注意:tomcat7以后,js文件的mimetype类型变为了application/javascript。