如果ContentEncoding:'gzip',则AWS S3返回200ok解析器失败

时间:2013-08-27 03:42:13

标签: node.js deployment amazon-web-services amazon-s3

我第一次部署到AWS。 文件全部到位,index.html加载。 子目录中有两个文件,一个.js和一个.css。 它们都返回200但无法加载。 Chrome浏览器是“解析器”。

在尝试了一些事情之后,我注意到这个属性导致它:ContentEncoding: "gzip"

如果删除此属性,则可以正确找到文件。

我是否错误地使用了此属性?

我通过这个伟大的项目使用Node AWS SDK:https://github.com/MathieuLoutre/grunt-aws-s3

您可以在http://tidepool.co.s3-website-us-west-1.amazonaws.com/

为自己目睹这种行为

2 个答案:

答案 0 :(得分:2)

如果指定Content-Encoding: gzip,则需要确保内容实际上是在S3上进行了压缩。

从我在CSS文件中看到的内容:

http://tidepool.co.s3-website-us-west-1.amazonaws.com/08-26_6483218-dirty/all-min.css

实际内容未进行gzip压缩,但存在Content-Encoding: gzip标头。

另请注意,S3无法根据请求中的Accept-Encoding标头动态压缩您的内容。您既可以将其压缩存储,也可以适用于所有浏览器/客户端,或者以压缩格式(gzip / deflate)存储它,它只适用于某些可以处理压缩内容的客户端。

答案 1 :(得分:0)

您还可以查看官方 AWS SDK for Node.js