【问题标题】:Safari: "Cannot decode raw data" when using GZIPSafari:使用 GZIP 时“无法解码原始数据”
【发布时间】:2015-11-17 02:18:46
【问题描述】:
我遇到的问题是,当我压缩文件(在本例中为 jquery)然后保存该 gzip 内容并使用 Content-Encoding: gzip 标头将其传送到浏览器时,它将在所有浏览器中工作,除了Safari,它确实声明:“无法解码原始数据”
我需要已经对内容进行 gzip 压缩,因为这将通过 µ-Controller 交付,该控制器只有足够的空间来存储 gzip 压缩的内容,并且到目前为止还没有足够的处理能力来 gzip 它甚至在运行中如果我能把它全部存储起来。
【问题讨论】:
标签:
javascript
jquery
safari
compression
gzip
【解决方案1】:
当您像这样使用 gzip 为 safari 压缩数据时:
gzip jquery.min.js
你最终会得到一个 jquery.min.js.gz,即使正确地指定为 gzip 编码的文件流以及重命名为 jquery.jgz,它也会在 Safari 中失败,正如许多其他线程中提到的关于此问题的那样。这似乎是因为文件名是在 gzip 文件中编码的。
如果你像这样编码一个 gzip 文件:
cat jquery.min.js | gzip > jquery.jgz
然后您将拥有一个小几个字节的文件,并且可以在 Safari 上完美运行。