我正在从谷歌下载jQuery库(http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js),这是一个被压缩和gzip的文件。在Firefox中,jQuery文件显示为19k请求,但Safari将其显示为56k请求。因此,我认为Safari不接受它作为gzip文件。这是怎么回事?它来自谷歌,我很确定它应该是gzip的。
我发现一个问题:在向Safari提供压缩的CSS或JS文件时,不能使用“.gz”扩展名。虽然它知道如何处理gzip文件,但只要文件带有“.gz”扩展名,它就会出现问题(这有点奇怪)。
以下是我向Safari提供压缩JS/CSS文件的方法:
所有其他浏览器都不关心您使用的扩展名,只要您设置了正确的内容类型和编码方式,因此它适用于所有浏览器。
我已经成功测试过了,使用Windows XP SP3上的Safari 4.0.4以及winxp上的Chrome 4、FF 3.5.5、IE8和Opera 10.10,确保了跨浏览器兼容性。
如果有人遇到同样的问题,我想补充一下。在使用开发工具进行调试并查看响应头之后,我注意到Content-Length
实际上显示了正确的gzip大小。因此,我只能假设它确实获取了正确的压缩版本,但在主资源窗口中显示未压缩的大小,而标题则显示压缩的大小。
我至少看到两种可能性:
Accept-Encoding
,其值通常为 compress, gzip
您是否有某种“网络嗅探器”,例如 wireshark (似乎有适用于 MacOS 的版本),以真正查看通过网络传输的内容?
我也遇到了这个问题,当我试图优化iOS7 Safari移动iPad上网站的加载时间时。
Safari在他们的调试器中选择了一种非常奇怪的方式来表示这些数字。