是否需要为favicon.ico添加链接标记?

use*_*110 145 html favicon html-head

是否有任何现代浏览器无法自动检测favicon.ico?是否有任何理由为favicon.ico添加链接标记?

<link rel="shortcut icon" href="/favicon.ico">
Run Code Online (Sandbox Code Playgroud)

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

Jer*_*oen 237

为favicon 选择不同的位置或文件类型(例如PNGSVG):
一个原因可能是您想要将图标放在特定位置,可能在图像文件夹或类似的东西中.例如:

<link rel="icon" href="_/img/favicon.png">
Run Code Online (Sandbox Code Playgroud)

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

要了解有关使用PNG等其他文件类型的更多信息,请查看此问题.

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

<link rel="icon" href="/favicon.ico?v=1.1"> 
Run Code Online (Sandbox Code Playgroud)

Favicons非常缓存,这是确保刷新的好方法.


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


关于脚注rel="icon":
@ Semanino的回答所示,使用rel="shortcut icon"旧版本的Internet Explorer需要旧技术,但在大多数情况下可以用更正确的rel="icon"指令代替.文章@Semanino基于此正确链接到适当的规范,显示relshortcut不是有效选项.


Sem*_*ino 51

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

<link rel="icon" href="/favicon.ico">
Run Code Online (Sandbox Code Playgroud)

注意"rel"属性的值!

shortcut iconrel属性是一个很老的Internet Explorer特定的扩展和过时.

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

您可能还想看看这篇精彩文章:rel ="快捷图标"被认为是有害的

  • 并不完全“弃用”(它实际上从来不是任何规范的一部分)。然而,[HTML5 规范](https://www.w3.org/TR/html5/links.html#rel-icon) 指出,“由于历史原因,图标关键字之前可能会出现关键字“快捷方式”。如果存在“快捷方式”关键字,则它必须紧接在图标关键字之前,并且两个关键字必须仅由一个 U+0020 空格字符分隔。” 另请注意,“icon 关键字给出的资源没有默认类型。” (2认同)

xgq*_*rms 10

<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" />
Run Code Online (Sandbox Code Playgroud)

这一切都取决于您喜欢使用哪种图像格式!
如果你有一个网站的图标,它对UX来说会好得多!