safari和gzip

bra*_*rad 9 javascript safari

我正在我的网站(http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js)上加载jQuery jQuery 和gzip.在firefox中,jquery文件显示为19k请求,但Safari将其显示为56k请求.我假设Safari不接受它作为gzip文件.这是怎么回事?它来自谷歌,我很确定它应该是gzip

Tri*_*ash 13

我发现了这一点:在向Safari提供压缩的CSS或JS文件时,你不能使用'.gz'扩展名.它知道如何处理gziped文件,只要它们没有'.gz'扩展名(它就是那么奇怪:)

以下是我如何将压缩的JS/CSS文件提供给Safari:

  • 使用任何其他扩展,只是不'.gz'('.jgz','.foo'或任何其他扩展名)
  • 为您选择的扩展设置gzip编码标头('Content-encoding:gzip')
  • 设置适当的MIME类型:text/javascript或text/css

所有其他浏览器都不关心您使用的扩展名,只要您设置正确的内容类型和编码,所以这适用于所有浏览器.

在Windows XP SP3上使用Safari 4.0.4成功测试了这个.和winxp上的Chrome 4,FF 3.5.5,IE8和Opera 10.10,用于跨浏览器兼容性.


Eri*_*lje 7

可能想看看这个链接.

经过一番挖掘后,我了解到你不能将压缩的javascripts发送到Safari,扩展名为"gz".一定是"jgz"

所以看起来问题实际上是谷歌将其作为"gz"而非"jgz"服务,就像Safari想要的那样.


bra*_*rad 4

只是想我会补充这一点,以防人们偶然发现同样的问题。在更多地使用开发工具并查看响应标头之后,我注意到Content-Length实际上显示了正确的 gzip 大小。我只能假设它实际上获得了正确的压缩版本,但在主资源窗口中它显示未压缩的大小,并且标题显示压缩的大小。