我正在尝试使用angular(v1.2.6)加载json文件:
$http.get('myfile.json').success(function(data) { ... }
这很好用,除非我在服务器上创建文件的(静态)压缩版本,并尝试加载'myfile.json.gz'(以减少加载时间)。
请求标头似乎正确(Mac上为Chrome 31.0)(如here和here所述):
Accept: application/json, text/plain, */*
Accept-Encoding: gzip,deflate,sdch
,而响应标头包含:
Connection: close
Accept-Ranges: bytes
Content-Length: 702468
Content-Type: application/x-gzip
Content-Encoding: gzip
但是,我理解it should be,客户端浏览器不会自动解压缩内容。 data.length
是〜700Kb,而不是原来未压缩的~3Mb。
虽然这个post表示需要手动完成,但我知道减压应该是自动且透明的。
我的问题是,它应该自动解压缩吗?为什么不是这样的呢?
答案 0 :(得分:4)
您的内容类型不应为“ application / x-gzip *它应该保留: 的应用/ JSON 强>
内容编码足以向浏览器说明内容已压缩。
你在运行什么HTTP服务器? 您应该对其进行配置,以便返回正确的mime类型,而不管.gz扩展名。