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


153

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

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

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


我从未见过任何浏览器都需要它。你有什么例子吗?
shark555

我可以命名一些具有首选项设置的浏览器,以决定是否favicon.ico自动查找。因此,如果您要确保图标显示出来,最好在HTML中包含一个链接。顺便说一句,.png文件通常小于可比较的.ico文件。
李斯特先生,2012年

请说出一些李斯特先生的名字:)不可以shark555,我不能说任何名字...
user1087110'4

5
Firefox(以及其他基于Gecko的浏览器,如SeaMonkey)具有多种设置可微调其行为。browser.chrome.favicons设置为true将在根目录中查找favicon.ico; 如果为false,则仅在HTML页面中指定时才会加载图标。请参阅kb.mozillazine.org/Browser.chrome.favicons和相关页面。
李斯特先生,2012年

Answers:


253

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

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

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

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

为了清除缓存
将查询字符串添加到路径中以清除缓存:

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

Favicon缓存非常重,这是确保刷新的好方法。


关于默认位置的脚注:
到问题的第一位:所有现代浏览器都会在默认位置检测到一个favicon,所以这不是使用link它的原因。


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


应该在<head>标签中吗?
Max Williams

1
@MaxWilliams是的。(请参阅MDN文档中的 “允许的父元素” 或W3规范 “上下文” )。
Jeroen

1
这是2016 -和Chrome仍然(?或者再次),如果您还specifiy其它图标是不承认根默认的favicon.ico ...
塞巴斯蒂安G. Marinescu的

52

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

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

注意“ rel”属性的值!

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

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

您可能还想看看这篇很棒的文章:rel =“ shortcut icon”被认为是有害的


1
没有完全“弃用”(实际上从来没有成为任何规格的一部分)。但是,HTML5规范指出:“出于历史原因,icon关键字可能会以关键字“ shortcut”开头。如果存在“ shortcut”关键字,则必须紧接icon关键字和两个关键字之前只能使用一个U + 0020 SPACE字符。” 还应注意,“没有使用icon关键字指定资源的默认类型。”
DocRoot '16

12
<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会更好!

演示

在浏览器标签中显示徽标

在此处输入图片说明



UX与此无关。
paddotk

@paddotk我的意思是,如果在浏览器中打开多个选项卡,如果该选项卡中显示图标图标,那么用户可以轻松分辨出哪个选项卡属于目标网站。
xgqfrms

1

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

<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">

0

最重要的是,并非所有浏览器都会实际查找您的favicon.ico文件。某些浏览器允许用户选择是否自动显示。因此,为了确保它始终出现并被查看,您必须对其进行定义。


6
感谢您的评论。您能命名某些不会自动显示的浏览器吗?
user1087110 2012年

11
@ user1087110:我什么都不知道,老实说谁在乎。关键是您不能假设会,而您需要考虑那些不会的。
animuson

由于不再相关,因此您可以删除答案以清理页面。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.