我的网站是压缩的,并且在IE中无法正确加载。它在FF / Chrome中运行良好,但在IE中,弹出的唯一内容是要求下载包含该页面的html文档的.gz文件的框。
这是正常的吗?我必须关闭gzip吗?
答案 0 :(得分:16)
您是否正在发送正确的标题?
您需要发送
Content-Encoding: gzip
标题让IE了解它是gzip(Firefox,等人足够聪明,可以自动检测到它 - 即使它们不应该!)
在PHP中,您可以使用以下方法执行此操作: -
header('Content-Encoding: gzip');
答案 1 :(得分:7)
要添加的一件事 - 你应该关闭IE6 SP2之前的gzip压缩。在SP2之前,IE6并不总是正确地读取和缓存gzip压缩内容,最终会导致代码被破坏。
您可以通过在用户代理字符串中查找“SV1”来识别IE6 SP2安装。
答案 2 :(得分:0)
我在使用带有闪存的页面上使用带有Internet Explorer的gzip时遇到了问题。如果您的页面有闪存,这可能是原因。我不记得原因,当时我们发现它在现场导致问题,所以我们只是禁用了Internet Explorer的gzip来解决它。
答案 3 :(得分:0)
HTTP标头是个问题。如果你有gzip标题以及以下之一:
需要删除其中一个或两个。
在运行Apache HTTP Server的计算机上更可能发生此问题,因为Apache HTTP Server可以在任何类型的文件上使用分块编码。这包括静态文件,如JavaScript文件或.gif文件。当发生本文中描述的问题时,Internet Explorer缓存中存储的内容可能会被截断或损坏。
对于XML,XHTML和XSLT文件,阻止解析为text / html或text / xsl:
RewriteCond %{HTTP_ACCEPT} text\/html [OR]
RewriteCond %{HTTP_ACCEPT} text\/xsl [OR]
RewriteCond %{HTTP_ACCEPT} gif|jpeg|png$
ReWriteRule .*\.(xsl|xslt)$ - [F]
并添加application/xml
作为内容类型映射:
AddType application/xml .xsl
<强>参考强>