【问题标题】:Chrome not rendering SVGZ from local file but does render SVGZ from serverChrome 不会从本地文件渲染 SVGZ,但会从服务器渲染 SVGZ
【发布时间】:2017-02-13 22:17:10
【问题描述】:

我已经使用 Chrome 从服务器保存了一个完整的 HTML 页面。

当我在 Chrome 中再次加载本地文件时,SVGZ 图像不会呈现,而是显示一个损坏的图像图标。

  • 仔细检查文件并再次从原始服务器加载,我发现 SVGZ 加载正常

  • 如果我只加载本地图像文件,系统会提示我保存图像

  • 如果我将本地图像文件扩展名编辑为 .SVG,并自行加载,它的渲染效果很好

  • 如果我随后编辑 HTML 文件以引用带有 .SVG 扩展名的重命名文件,那么整个页面和图像都可以正确加载


我知道这不是严格意义上的编程问题,但通过大量搜索,我在 StackOverflow 上找到了比在 AskUbuntu 上更密切相关的答案。

这个答案提供了迄今为止我发现的最好的线索:

Chrome not rendering SVG referenced via <img> tag

我来这里是因为我遇到了类似的问题,图像没有显示 呈现。我发现我的内容类型标头 测试服务器不正确。我通过添加以下内容来修复它 我的 .htaccess 文件:

AddType image/svg+xml svg svgz
AddEncoding gzip svgz

所以我猜测问题出在某个地方:

  • 从服务器加载时,正确指定了内容类型
  • 从我的本地文件加载时,未正确指定内容类型

有没有办法解决这个问题?

我可以通过更改 Chrome 设置来“模仿” .htaccess mime 类型和编码吗?

感谢任何建议。

【问题讨论】:

    标签: google-chrome svg


    【解决方案1】:

    我创建了一个带有 &lt;img&gt; 的测试 HTML 文件,它加载了一个 .svgz 文件。它工作正常(Win7 上的 Chrome)。

    检查您的 .svgz 文件是否实际上是一个 gzip 压缩的 SVG 文件,而不是其他文件。例如,我怀疑它实际上是一个普通的 SVG 文件,但扩展名为“.svgz”。按照您描述的方式,这将失败。

    【讨论】:

    • 谢谢...这是有道理的。如果我在普通文本编辑器中打开 .svgz 文件,它确实是纯文本......那里没有压缩。所以我猜测服务器上的文件是 .svgz 并且在页面加载时它会被浏览器解压缩。然后当我保存页面时,现在 uncompressed .svg 文件以 .svgz 扩展名保存。然后,在重新打开本地 .html 页面时,不正确的扩展名会导致浏览器吐出假人。
    • 仅报告附加测试的结果:Firefox 表现出相同的行为......所以这不仅仅是 Chrome 的问题。
    • 最后一个问题 - 据我了解:这会“破坏”所有使用 .svgz 文件的本地保存网页吗?这是使用该图像格式的典型行为问题吗?
    • [ 我确实尝试将您的答案标记为我接受的问题解决方案,但我的代表太低了。赞成票的情况相同。手动感谢这里:-)]
    • 是的。你所怀疑的也是我认为正在发生的事情。任何预压缩它的 SVG 文件的站点都会有这个问题。我怀疑没有多少人这样做。这是我第一次看到这里报告的这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多