2015-11-07 270 views
0

我有一个网站在亚马逊s3上托管,并通过Cloudfront进行分发。我正在尝试提供gzip文件。到目前为止,我已经完成了以下工作: 1)gzip我的文件。Gzip与亚马逊S3/Cloudfront失败

2)将我的gzip文件上传到s3。我现在有两个未压缩的和gzip的副本。例如:style.css和style.css.gz在桶中

3)我公开了这些文件。

4)我检查了文件的元数据,看起来亚马逊已经把内容类型:application/x-gzip。我认为这是正确的。

5),那么我将要去的元数据,并增加一块新的元数据的添加内容编码:内容编码:gzip

我认为这是我不得不这样做,但是当我去我的网页现在只需下载html文件的副本,而不是显示它们。我错过了什么?我是初学者,所以任何事情都有帮助。谢谢

回答

2

Content-Type: application/x-gzip是错误的。内容类型必须设置为文件的实际内容类型,例如text/html

Content-Encoding: gzip是正确的,并且是必需的。

+0

非常感谢!我试过了,页面正在加载,但它似乎仍然没有为浏览器提供gzip格式。还有什么我失踪?非常感谢 – schermee

+0

它不会神奇地服务gzip内容,您必须使用.gz链接。或者,只保存* gzip文件的副本,没有.gz ...例如,将gzip文件保存为index.html,content-type text/html,content-encoding gzip ...这就是我所做的它。 –

+0

@ Michael-sqlbot当谷歌搜索我的问题的答案我一直在你的答案发生。你介意看看:http://stackoverflow.com/questions/35590622/cloudfront-with-s3-website-as-origin-is-not-serving-gzipped-files? – m0meni