我们正在创造 网站地图 XML-文件,并在谷歌网站管理员工具中指向它们,这将使 零星 给予以下错误信息 部分文件:
压缩错误
该 谷歌文档中的 "如何修复" 并没有真正给出任何提示 怎么了.
该文件是在.NET中生成的,并使用以下方法压缩 System.IO.Compression.GZipStream。 并通过 MSDN的推荐使用方式.
它确实有效 当我们在 7-拉链 并重新保存文件即可,不做任何修改。
有什么提示吗?
好了,这里是我对这个问题的想法。很明显 System.IO.Compression.GZipStream
产生的文件没有损坏,但仍然有小问题,这不喜欢谷歌。
简单的解决方案和检查是切换到其他压缩库,看看是否有帮助。
稍微复杂一点的解决方案是严格的检查 GZIP文件格式 规格。具体来说,我会检查(比较)文件的头部(原始和7zip)。这样你就有可能发现文件有问题,并有可能修复它。
+1支持@Akash的回答。 我在IIS(尤其是IIS 6)中尝试访问压缩内容时遇到了麻烦。 让IIS来做压缩,只是把未压缩的xml文件放在一个方便的位置。
如果你有访问.htaccess文件的权限,那么我给你一些小技巧来编辑它,让你的所有文件都会被自动缓存和压缩,好的,这里是小技巧,把你的网站根目录下包含.htaccess文件。
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
你可以通过一些工具如woorank.com检查出你的网站地图是否会被压缩,它将显示是的,你的网站利用Gzip的优势,是的,它将自动完成,当谷歌抓取你的网站地图和任何其他文件包括在上面的代码。