最近有个客户升级了华丹快速开发平台,发现前端页面展现不正常,360浏览器控制台报ERR_CONTENT_LENGTH_MISMATCH 200错误。
百度上都说是nginx缓存文件权限不够造成的,实际上没有用nginx代理。只用了Tomcat.
分析发现访问出错的文件主要是比较大的js文件。新版的开发平台应用了layui框架,而layui从2.60版开始将所有内置模块构建为一个文件,有285K,相对来说比较大。
解决方案比较简单,打开tomcat下的server.xml,找到connector段:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
relaxedQueryChars="[]|{}^\`"<>"
URIEncoding="UTF-8"
redirectPort="8443" />
将connectionTimeout值改成60000,并增加useSendfile="false",如:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="60000"
relaxedQueryChars="[]|{}^\`"<>"
URIEncoding="UTF-8"
redirectPort="8443"
useSendfile="false" />
就是增加服务器超过反应时间,这样对于较大一些的js文件就不会有netERR_CONTENT_LENGTH_MISMATCH 200错误,这个问题并不是普遍现象大概与网络及tomcat版本有关。