我有rails 3.2.1 application和nginx。
在nginx配置中,我设置gzip on;
,压缩适用于pages,css,js文件。
但它不适用于JSON响应。我发现rails的解决方案是将:config.middleware.use Rack::Deflater
添加到application.rb。
它有助于:在响应为45Kb之前,现在接近8Kb。
但是,现在我发现压缩仅适用于Mac Chrome,Mac Firefox和Windows Chrome。
对于IE 10,IE 11和Windows Firefox - 它不起作用:
Accept-Encoding: gzip, deflate
,Content-Encoding: gzip
,请帮助。
答案 0 :(得分:2)
通过将压缩配置从rails移动到nginx配置来解决。
我添加到<my_site>.conf
:
# Enable Gzip
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_proxied any;
gzip_types
# text/html is always compressed by HttpGzipModule
text/css
text/javascript
text/xml
text/plain
text/x-component
application/javascript
application/json
application/xml
application/rss+xml
font/truetype
font/opentype
application/vnd.ms-fontobject
image/svg+xml;
gzip_static on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
感谢@Alexey Ten寻求帮助。
它可以工作,但在IE中看不到压缩。
Windows上的一些安全程序捕获“gzipped”HTTP响应,从存档中提取,检查病毒并从响应标题中删除Content-Encoding: gzip
。 IE像往常一样出色:)