【问题标题】:Necessary to add link tag for favicon.ico?需要为 favicon.ico 添加链接标签吗?
【发布时间】:2012-04-30 09:11:56
【问题描述】:

是否有不会自动检测 favicon.ico 的现代浏览器?是否有任何理由为 favicon.ico 添加链接标签?

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

我的猜测是,如果您决定使用 GIF 或 PNG,只需将其包含在 HTML 文档中...

【问题讨论】:

  • 我从未见过任何浏览器需要它。你有例子吗?
  • 我可以说出一些有偏好设置的浏览器是否会自动寻找favicon.ico。因此,如果您想确保您的图标显示出来,最好在 HTML 中包含一个链接。顺便说一句,.png 文件通常比可比较的 .ico 文件小。
  • 请说出一些李斯特先生的名字 :) 没有 Shark555,我不能说出任何名字...
  • Firefox(以及其他基于 Gecko 的浏览器,如 SeaMonkey)有几个设置来微调其行为。 browser.chrome.favicons 设置为 true 将在根目录中查找 favicon.ico;如果为 false,则仅在 HTML 页面中指定时才加载图标。请参阅kb.mozillazine.org/Browser.chrome.favicons 和相关页面。

标签: html favicon


【解决方案1】:

2020 年 10 月更新:

因此,如果您在此页面上摸不着头脑? 为什么我的网站图标不起作用,请继续阅读。我尝试了所有的方法(我应该认为我做对了),但网站图标没有显示在浏览器选项卡上。

这是一行简单完美运行的破解代码:

&lt;link rel="icon" href="https://abcde.neocities.org/bla123.jpg" size="16x16" type="image/jpg"&gt;

注意事项:

  1. 将图像放在 ROOT 文件夹中(在我的一次不成功的尝试中,我没有使用根目录)
  2. 使用直接网站图标 url 链接(而不是 href="images/bla123.jpg")。
  3. 我将这个标签放在标题>
  4. 中的title>标签下面
  5. 我将网站图标大小设为 64x64 像素,大​​小为 2.16 KB

我在 Firefox、Chrome、Edge 和 opera 上对其进行了测试。 操作系统:Win 10、Mac OSX、ios 和 Android 。另外我也没有遇到任何兑现问题,我一刷新页面就可以正常工作了。

【讨论】:

  • 确认网站图标大小确实有影响
【解决方案2】:
<link rel="icon" type="image/x-icon" href="http://example.com/favicon.ico" />
<link rel="icon" type="image/png" href="http://example.com/favicon.png" />
<link rel="icon" type="image/gif" href="http://example.com/favicon.gif" />
<link rel="icon" type="image/jpeg" href="http://example.com/favicon.jpeg" />
<link rel="icon" type="image/webp" href="http://example.com/favicon.webp" />

这完全取决于您喜欢使用哪种格式的图片!
如果您有网站的图标,则对 UX 来说会更好!

演示

在浏览器选项卡中显示徽标

【讨论】:

【解决方案3】:

我们可以为所有具有平台特定尺寸的设备添加

<link rel="apple-touch-icon" sizes="57x57" href="fav_icons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="fav_icons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="fav_icons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="fav_icons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="fav_icons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="fav_icons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="fav_icons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="fav_icons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="fav_icons/apple-icon-180x180.png">

<link rel="icon" type="image/png" sizes="192x192"  href="fav_icons/android-icon-192x192.pn">
<link rel="icon" type="image/png" sizes="32x32" href="fav_icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="fav_icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="fav_icons/favicon-16x16.png">

【讨论】:

    【解决方案4】:

    要为网站图标选择一个不同的位置或文件类型(例如PNGSVG
    一个原因可能是您希望将图标放在特定位置,可能在图像文件夹或类似文件夹中。例如:

    <link rel="icon" href="_/img/favicon.png">
    

    这个不同的位置甚至可能是一个 CDN,就像 SO 似乎与 &lt;link rel="shortcut icon" href="http://cdn.sstatic.net/stackoverflow/img/favicon.ico"&gt; 一样。

    要了解有关使用其他文件类型(如 PNG)的更多信息,请查看this question

    出于缓存清除目的:
    将查询字符串添加到路径以进行缓存清除:

    <link rel="icon" href="/favicon.ico?v=1.1"> 
    

    网站图标被大量缓存,这是确保刷新的好方法。


    关于默认位置的脚注:
    至于问题的第一点:所有现代浏览器都会在默认位置检测到网站图标,因此 不是为此使用 link 的理由。


    关于rel="icon"的脚注:
    正如@Semanino's answer 所指出的,使用rel="shortcut icon" 是旧版本的Internet Explorer 所需要的一种旧技术,但在大多数情况下可以用更正确的rel="icon" 指令代替。 The article @Semanino based this on 正确链接到 the appropriate spec,这表明 relshortcut 不是有效选项。

    【讨论】:

    • 这个应该放在&lt;head&gt;标签中吗?
    • @MaxWilliams 是的。 (参见in the MDN docs 中的“允许的父元素”或the W3 spec 中的“上下文”)。
    • 现在是 2016 年 - 如果您还指定其他图标,Chrome 仍然(或再次?)无法识别根目录中的默认 favicon.ico...
    【解决方案5】:

    请注意 W3C 和 WhatWG 的 HTML5 规范标准化

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

    注意“rel”属性的值!

    rel 属性的值 shortcut icon 是一个非常古老的 Internet Explorer 特定扩展,已弃用

    所以请考虑不再使用它并更新您的文件,以便它们符合标准并在所有浏览器中正确显示。

    您可能还想看看这篇精彩的帖子:rel="shortcut icon" considered harmful

    【讨论】:

    • 不太“弃用”(它实际上从来不是任何规范的一部分)。但是,HTML5 spec 声明,“由于历史原因,icon 关键字之前可能会出现关键字“shortcut”。如果存在“shortcut”关键字,则它必须紧跟在 icon 关键字之前,并且这两个关键字必须是仅由一个 U+0020 空格字符分隔。”另请注意,“icon 关键字给出的资源没有默认类型。”
    【解决方案6】:

    底线并非所有浏览器都会真正寻找您的favicon.ico文件。一些浏览器允许用户选择它是否应该自动查看。因此,为了确保它总是出现并被查看,你必须定义它。

    【讨论】:

    • 感谢您的评论 animuson。你能说出一些不会自动显示的浏览器吗?
    • @user1087110:我不知道任何事情,老实说,谁在乎。关键是你不能假设它会,你需要考虑那些不会的。
    • 由于不再相关,您可以删除您的答案以清理页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2013-09-12
    • 2016-09-16
    • 1970-01-01
    相关资源
    最近更新 更多