【问题标题】:IE doesn't show .ico icons in HTML if not served as "image/x-icon"如果不作为“image/x-icon”提供,IE 不会在 HTML 中显示 .ico 图标
【发布时间】:2009-09-17 14:25:34
【问题描述】:

我在列表中显示网站的图标,作为<img /> 元素。

一些网站将它们用作:

<link rel="icon" type="image/x-icon" href="favicon.ico" />

还有一些作为:

<link rel="shortcut icon" href="favicon.ico" />

IE 不显示那些没有 type="image/x-icon" 的网站图标图像。
我无法控制网站如何为其网站图标提供服务,那么我能做些什么呢?

【问题讨论】:

  • 你到底想做什么?
  • 那么您希望它像在“关于”页面上那样工作吗? stackoverflow.com/about(版主在底部)
  • 你能举一个你不能显示网站图标的网站的例子吗?
  • sfist.com/favicon.ico" alt="" />

标签: html internet-explorer icons favicon


【解决方案1】:

我认为最好的办法是将它们转换为另一种格式。如果您手动显示图标,则可以下载每个图标,使用图像程序对其进行转换,然后将其上传到您的网站。

如果您是自动执行此操作,则需要查看您在服务器端获得的任何图像处理工具。如果您使用的是 PHP,那就是 GDImageMagick 库。例如,只需转换为 PNG,然后将其缓存在您的网站上。

如果 IE 不显示与页面内联的 .ico 文件,那么您不太可能在不进行某种处理的情况下使其显示。在最简单的层面上,您可以只读取外部图像并将它们作为正确的 mime 类型提供,而无需对其进行转换。

【讨论】:

  • 我同意 - 比试图让浏览器(尤其是非 IE 浏览器)在 IMG 中显示 ICO 要好得多
  • 非 IE 浏览器始终正确显示它们。我在 .NET 上 :( 它们都是动态加载的,可能有数千个。我知道 PHP 的 GD,并考虑过,但是对于这么简单的事情来说工作量太大了。感谢您的帮助!跨度>
  • 我确信.net 有一些图像处理功能。但是您应该能够简单地使用不同的 mime 类型自己提供文件,而无需转换。
  • @DisgruntledGoat - 我该怎么做?
  • 我不知道在 .net 中的具体情况,但您会有一个带有图标文件参数的脚本。该脚本将设置image/x-icon 的标头,然后读取传入的文件并简单地将其吐出。在 PHP 中,您只需使用标头函数和 curl_exec。可能值得提出一个直接针对 .net 的单独问题。
【解决方案2】:

把它放在你的 apache 配置或.htaccess 文件中:

AddType image/x-icon .ico

【讨论】:

    【解决方案3】:

    不幸的是,似乎无法解决我的问题。 IE 无法在我的链接列表 (http://www.jerbils.info/wxlinks.php) 中显示所有 favicon.ico,而所有其他浏览器都会显示(即它们显示所有存在的 favicon.ico)。有趣的是,如果我在 IE 中手动显示域的 favicon.ico,则未在 IE 中显示但在所有其他浏览器中显示的内容显示为文本内容,而不是图像。这意味着 IE 不喜欢文件中的某些内容,因此它会生成导致显示默认图标的 onerror 条件。

    【讨论】:

      猜你喜欢
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 2011-09-24
      • 2012-03-01
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      相关资源
      最近更新 更多