【问题标题】:What 'Content-Type' header to use when serving gzipped files?提供 gzip 文件时使用什么“Content-Type”标头?
【发布时间】:2014-06-29 07:06:16
【问题描述】:

我正在提供我的 css / javascript 文件的 gzip 副本。根据教程,我在提供这些文件时将内容类型设置为application/gzip。但是,chrome 似乎没有解压缩这些文件,并且对于 javascript 文件,我得到了很多“非法字符”错误。如果我查看源代码,我仍然看到文件是压缩的,而不是未压缩的。

我的问题是,我应该为这些文件设置什么内容类型,以便浏览器将它们正确解释为 gzip 压缩的 css / js 文件并解压缩它们?如果我只设置text/javascripttext/css,浏览器还能正确解释它们吗?

编辑:完整的响应标头:

HTTP/1.1 200 OK
x-amz-id-2: UIBkZT/MuFxsmn+3nVOzEO63rRY99l3traCbMExUgSdGHUrOIPtNp34h1+ujYKmt
x-amz-request-id: 19346C9B01D8FC62
Date: Mon, 12 May 2014 03:59:51 GMT
Content-Encoding: gzip
Last-Modified: Mon, 12 May 2014 02:24:54 GMT
ETag: "561080b5e19f6daea2e74fd5a0623c79"
Accept-Ranges: bytes
Content-Type: application/x-gzip
Content-Length: 5153
Server: AmazonS3

【问题讨论】:

    标签: javascript http http-headers gzip


    【解决方案1】:

    响应中的压缩内容在Content-Encoding 中指示。 Content-Type 应该保持不变,也就是说,它应该反映被压缩的底层媒体类型。

    Content-Type: application/javascript
    Content-Encoding: gzip
    

    有关详细信息,请参阅 RFC 2616 的 14.11 Content-Encoding3.5 Content Codings 部分。

    【讨论】:

    • 我已经这样做了,但它似乎仍然没有正确解释脚本。我已经编辑将完整的标题放在问题中
    • 它在第 1 行给出错误 Uncaught SyntaxError: Unexpected token ILLEGAL,当我检查它时,我看到它在该行有文件名,例如 �� aRjquery-1.7.1.min.js�}。我使用gzip -9 压缩了文件,我需要使用较低的设置进行gzip 压缩吗?还是我需要从文件开头删除文件名?
    • 好的,我看到了预期的 Content-Encoding,但 Content-Type 应该反映被压缩的底层媒体类型。尝试将application/x-gzip 改回application/javascript
    • 我还看到 AmazonS3 是服务器。也许stackoverflow.com/questions/5442011/… 也是相关的。
    猜你喜欢
    • 2010-11-06
    • 2021-10-01
    • 2020-04-18
    • 1970-01-01
    • 2020-03-20
    • 2019-03-03
    • 2019-06-28
    • 2013-02-15
    • 2016-08-21
    相关资源
    最近更新 更多