最近有个客户升级了华丹快速开发平台,发现前端页面展现不正常,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="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"

              URIEncoding="UTF-8"

              redirectPort="8443" />

将connectionTimeout值改成60000,并增加useSendfile="false",如:

<Connector port="8080" protocol="HTTP/1.1"

              connectionTimeout="60000"

      relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"

      URIEncoding="UTF-8"

              redirectPort="8443"

      useSendfile="false" />

就是增加服务器超过反应时间,这样对于较大一些的js文件就不会有netERR_CONTENT_LENGTH_MISMATCH 200错误,这个问题并不是普遍现象大概与网络及tomcat版本有关。