遇到类似的行为,深入挖掘发现这是 HTTP 标头的怪异之处。就我而言,我使用的是 nginx;不确定您在哪个服务器上。问题是,为了为我的资源定义 gzip 压缩,我启用了如下压缩
# gzip settings
gzip on;
gzip_min_length 900;
gzip_buffers 4 32k;
gzip_types application/x-javascript text/xml text/css application/json;
gzip_vary on;
# gzip settings end
这里重要的考虑因素是线路gzip_min_length 900;
。这指示 nginx 如果内容大小小于 900 字节,则不要压缩该资源。
我的文件大小是 506 字节(小于 900),所以 nginx 没有压缩它。但是,它发送的Content-Length
资源好像它实际上已经压缩了它(566 字节)。(是的,压缩时资源大小实际上增加了。对于较小的文件,这是可以预料的,这就是为什么gzip_min_length
首先有一个指令的原因)
所以为了解决这个问题,我简单地将阈值降低gzip_min_length
到 100。现在 nginx 压缩文件(它稍微膨胀到 566 字节),并发送正确的Content-Length
标头(566 字节)。
希望这对某人有帮助!