【问题标题】:SVG won't displaySVG 不会显示
【发布时间】:2015-02-04 23:11:53
【问题描述】:

我正在尝试让这个简单的代码工作:

<a href="#" target="_blank" style="display: inline-block;">
    <object data="icons/chrome.svg" type="image/svg+xml" style="pointer-events: none;">
        fallback text
    </object>
</a>

当我使用时

data="http://images3.wikia.nocookie.net/__cb20120330024139/logopedia/images/d/d7/Google_Chrome_logo_2011.svg" 

它有效。但是,当我将该确切文件保存到我自己的服务器上并如上所述引用它时,它只会在 Firefox 中显示后备文本。在 Chrome 中,当我打开页面时它会下载文件(这证明文件链接是正确的)。

有人知道这里发生了什么吗?

【问题讨论】:

    标签: google-chrome svg


    【解决方案1】:

    我能想到四种可能性:

    1. 您的服务器对 SVG 图像使用了错误的 MIME 类型。 (可以通过将AddType image/svg+xml svg 添加到您的.htaccess 文件中来修复;other methods discussed here

    2. 您将 SVG 文件保存在其他位置,但它在 icons/chrome.svg 中不存在。 (尝试直接导航到位于 icons/chrome.svg 的 SVG 文件。它会显示在您的浏览器中吗?)

    3. 您保存文件时权限不足,导致您的 Web 服务器无法访问该文件。 (可以通过导航到icons 目录并在命令行提示符处输入chmod 0644 chrome.svg 来修复。)

    4. 您从 nocookie.net 下载的文件实际上根本不是 SVG 文件。 (尝试在文本编辑器中打开它。)

    【讨论】:

    • 感谢您的回复。我认为问题是#1。虽然 .htaccess 文件不起作用,但我可以通过将其放在根目录下的 web.config 文件中来让 SVG 从我的服务器中显示出来:&lt;configuration&gt; &lt;system.webServer&gt; &lt;staticContent&gt; &lt;remove fileExtension=".svg" /&gt; &lt;mimeMap fileExtension=".svg" mimeType="image/svg+xml" /&gt; &lt;/staticContent&gt; &lt;/system.webServer&gt; &lt;/configuration&gt; 作为参考,我使用的是 Godaddy 托管。我现在遇到链接不起作用的问题,但我正在调查。
    【解决方案2】:

    我遇到了@r3mainer 描述的第一个问题。

    在我的 lighttpd 服务器上,问题是由丢失引起的

      ".svg"          =>      "image/svg+xml",
    

    在 lighttpd 配置文件的mimetype.assign 部分中的行。

    【讨论】:

      猜你喜欢
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 2018-12-08
      • 2014-03-06
      • 1970-01-01
      相关资源
      最近更新 更多