我正在开发一个网站,我正在使用gzip.exe来预压缩css和js文件(它只有1个css文件,从4.53 KB到1.50 KB,以及一个包含jquery和一些脚本的js文件从72.8 KB到24.7 KB)
这些文件是style.gz和js.gz,并作为静态文件提供。
问题是它们不适用于Safari(v5.0.2)而不适用于CSS而不是js。
这些浏览器的工作正常:
Firefox 3.6.10 / Google Chrome 6.0.4 ... / IE 8 x64 / Flock 3.0.6 / Maxthon 2.5.15 ... / Avant Browser 2010
所有这些都可以正常工作,除了Safari
我正在使用Windows 7 x64
答案 0 :(得分:3)
您应该让服务器对它们进行gzip - 这可以在htaccess文件中完成,并且运行正常。
答案 1 :(得分:2)
+1抢劫说什么。
你正在做的是一个不应该工作的黑客,所以当它失败时你不能真正抱怨。提供gzip资源与使用Content-Encoding
标头在线路上压缩它的不同类型的资源完全不同。
对于不了解gzip的用户代理,服务预先gzip压缩的文件显然也会失败。 HTTP标准提供了一种协商机制:Accept-Encoding
和Content-Encoding
。除非您以完全符合标准的方式重新实现该机制(并且Michael的链接中的文章开始才能正确实现),否则您将阻止客户端。
这都是不必要的。 Gzip速度很快,服务器通常会缓存静态内容的压缩版本,因此您可以通过尝试进行二次猜测来获得任何收益。 HTTP压缩是Web服务器核心竞争力的一部分,让Web服务器完成其工作并单独留下gzip。
答案 2 :(得分:1)
有一种方法可以解决这个问题。基本上,您需要使用.jgz而不是.gz作为JavaScript文件的扩展名: