gpt4 book ai didi

SVGZ 给出编码错误

转载 作者:行者123 更新时间:2023-12-04 12:59:41 24 4
gpt4 key购买 nike

我坐在这里使用 SVG,我想使用 SVGZ 对这些文件进行 gzip - 问题是,当我打开 SVGZ 文件时出现此错误:

This page contains the following errors:

error on line 1 at column 1: Encoding error Below is a rendering of the page up to the first error.



我尝试在不同类型的应用程序中创建相同的 svg,并在不同的浏览器甚至服务器中进行尝试。我以前和 svgz 一起工作过,我可以在那里展示它,但那是前一段时间了..

任何人都知道如何解决这个问题?

最佳答案

我遇到了同样的问题,经过一番挖掘,我找到了解决方案。
我的解决方案是针对 IIS 的,但在我的测试中,我在 Apache 上发现了相同的行为。

svgz 的 Mime 类型有点问题,因为与未压缩的 SVG 相同:

image/svg+xml

因此,为了在 IIS 上启用 SVGZ 服务,我必须添加一个重写规则,该规则添加了 hedaer
Content-Encoding: gzip

这是有效的,但有时浏览器会收到以前的编码错误。

问题是服务器将 svgz 视为静态内容,并且由于站点上启用了“静态压缩”,因此客户端有时会收到原始内容,有时会收到压缩(和缓存)的内容,但不知道其中的区别,因为服务器压缩启用了gzip Content-Encoding header ,与一直启用的重写规则相同。

客户端实际上无法理解服务器何时重新压缩内容,何时不重新压缩。

可能的解决方案是:
  • 完全禁用静态压缩
  • 禁用图像/svg+xml MIME 类型的静态压缩 MIME 映射。这也将禁用 svg 的压缩,但如果您的站点仅提供 svgz,这将不是问题。

  • IIS 的第二种解决方案可以通过编辑 applicationHost.config 启用:
        <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <staticTypes>
    <...>
    <add mimeType="image/svg+xml" enabled="false" />
    </staticTypes>
    </httpCompression>

    希望这会帮助你。

    PS:这是我在stackoverflow上的第一篇文章!

    关于SVGZ 给出编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7864977/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com