首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SVGZ给出编码错误

SVGZ给出编码错误
EN

Stack Overflow用户
提问于 2011-10-23 07:44:25
回答 3查看 10K关注 0票数 11

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

此页面包含以下错误:

第1列中的第1行错误:下面的编码错误是页面的呈现,直到第一个错误。

我尝试在不同类型的应用程序中创建相同的svg,并在不同的浏览器甚至服务器上进行尝试。我以前和svgz合作过,在那里我可以把它展示出来,但那是很久以前的事了。

有人知道怎么解决这个问题吗?

EN

回答 3

Stack Overflow用户

发布于 2014-09-24 12:22:53

我发现要确保“图像位置”设置为“

在对SVG设置的保存中嵌入“而不是链接”对我起作用

票数 1
EN

Stack Overflow用户

发布于 2019-01-11 08:59:12

我也面临着同样的问题,经过一番挖掘,我找到了解决办法。我的解决方案是针对IIS的,但在测试期间,我在Apache上发现了相同的行为。

svgz的Mime类型有些错误,因为未压缩的SVG是相同的:

代码语言:javascript
复制
image/svg+xml

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

代码语言:javascript
复制
Content-Encoding: gzip

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

问题是服务器将svgz视为静态内容,而且由于在站点上启用了“静态压缩”,客户端有时接收原始内容,有时接收压缩(和缓存)内容,而不知道不同之处,因为服务器压缩行为支持gzip内容--编码标头,重写规则总是启用所有时间。

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

可能的解决办法是:

  • 禁用所有

的静态压缩,

  • 禁用图像/svg+xml类型的静态压缩MIME映射。这也将禁用svg的压缩,但是如果您的站点只提供svgz,这将不是问题。

IIS的第二个解决方案可以启用编辑applicationHost.config:

代码语言:javascript
复制
    <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:这是我第一篇关于堆栈溢出的文章!

票数 1
EN

Stack Overflow用户

发布于 2011-10-23 14:19:22

从您所提供的信息中很难猜测,但是似乎您发送的是gzip SVG,而没有正确设置内容-Encoding:gzip。这将导致浏览器的XML解析器无法解析内容,因为它不是XML。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7864977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档