记一次平台页面错误。
平台清除缓存后,引入 jquery.ztree.core.js乱码导致页面错误。多次清除缓存,时而正常,时而乱码很是不解。
js中乱码
第一反应:js有问题,去官网下载完整版未修改过的js文件。
经过测试: 还是一样。
第二反应: 百度,经过百度查询,$.fn.zTree.init($("#treeDemo1"), setting1); init方法未定义。是因为父页面和兄弟页面中多次引入Jquery.js冲突引起的。
经过测试:完犊子,不行。
第三反应:后台乱码? 修改tomcat 的service.xml文件。怎么想怎么不对,这里配置的防止GET请求url中此参数乱码,不应该影 响js啊,并且js中全部都是英文,怎么会乱码呢?
<Connector executor="tomcatThreadPool"
port="8098" protocol="org.apache.coyote.http11.Http11NioProtocol"
URIEncoding="UTF-8"/>
经过测试:一样不行。
最后发现只要乱码,请求状态码就时206:
经过百度得出一下结论:
Nginx代理之后会有相应的代理缓存区,缓存区默认只有几十K,某些版本的nginx默认设置中没有相关处理,导致部分文件代理是会出现加载不全的现象,其实不仅仅是JS文件。只是因为框架的JS文件略大,所以经常出现类似问题。
决定修改nginx.config配置试试
第一增大nginx代理的缓冲区
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
这三个参数什么意思呢?下面时我从官网翻译出来的;你英文好的话:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size
经过测试:好使
最后把gzip压缩也一起加上,能到达什么效果呢?
1. js等大文件传输速度快,因为文件压缩了。传输肯定不一样。
2. 节约带宽。
。。。。上代码:
gzip on;
gzip_min_length 1;
gzip_buffers 4 16K;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types application/javascript text/css text/xml;
gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
gzip_vary on;
- gzip 用于设置开启或者关闭gzip模块,“gzip on”表示开启GZIP压缩,实时压缩输出数据流;
- gzip_min_length 设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,不管页面多大都进行压缩。建议设置成大于1K的字节数,小于1K可能会越压越大;
- gzip_buffers 表示申请4个单位为16K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果;
- gzip_http_version 用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可;
- gzip_comp_level 用来指定GZIP压缩比,1 压缩比最小,处理速度最快;9 压缩比最大,传输速度快,但处理最慢,也比较消耗cpu资源;
- gzip_types 用来指定压缩的类型,无论是否指定,“text/html”类型总是会被压缩的;
- gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
- gzip_vary 选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过Nginx压缩的数据。
整完页面呼呼地。
附上一份比较详细的nginx配置文档:https://blog.csdn.net/wangbin_0729/article/details/82109693