您是否必须包含<link rel =“ icon” href =“ favicon.ico” type =“ image / x-icon” />?


205

我的head标签中未包含以下代码行,但是我的收藏夹图标仍显示在浏览器中:

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

包含它的目的是什么?

Answers:


174

如果您不调用favicon,则favicon.ico可以使用该标签指定实际路径(如果您将其放在images/目录中)。favicon.ico默认情况下,浏览器/网页在根目录中查找。


3
或者,如果您在根文件夹中没有favicon.ico,而在例如资产文件夹中则没有
Upvote 2014年

121

实际上,您应该同时执行这两项操作,以便所有浏览器都可以找到该图标。

命名文件“ favicon.ico”并将其放在您网站的根目录中是W3C的“不推荐使用”方法:

方法2(不推荐使用):将图标图标放置在预定义的URI中
用于指定图标图标的第二种方法依赖于使用预定义的URI来标识图像:“ / favicon”,它相对于服务器根目录。此方法之所以有效,是因为已将某些浏览器编程为使用该URI查找收藏夹图标。
W3C-如何在您的网站上添加收藏夹图标

因此,为了涵盖所有情况,除了建议的添加“ rel”属性并将其指向相同的.ico文件的方法之外,我总是这样做。


8
是的,这是一个更正确的答案。没有简单地将a favicon.ico放在根目录中的标准,但是大多数浏览器出于历史原因会自动请求该文件。
法布里西奥磨砂

10
这样做的正确原因不是因为它在某些情况下有效,而是因为更好的方法在某些情况下不起作用
Jasper 2015年

2
奇怪的是,realFaviconGenerator建议不要在HTML头中声明图标。
Dan Dascalescu

7
Internet Explorer 发明了favicon并从根本上寻找它。AFAIK,所有浏览器都执行此操作。这就是为什么我建议将favicon.ico放在根目录中的原因,因为否则它将返回404,并且大多数系统不会缓存它……因此它会继续请求它。在此处放置一个图标,它将被正确缓存。
Stijn de Witt

50

我使用它有两个原因:

  1. 我可以通过添加一个查询参数来强制刷新图标?v=2。像这样: <link rel="icon" href="https://stackoverflow.com/favicon.ico?v=2" type="image/x-icon" />

  2. 万一我需要指定路径。


太棒了,终于弄清楚了为什么没有显示!
whamsicore

我确定这只是一个错字,但是您那里有一个相对的href,这意味着除非您的所有页面都位于顶层或者每个子目录中都有一个favicon.ico文件,否则它不会起作用。
克里斯·科格登

仅供参考,以防后来的读者,克里斯·科格登(Chris Cogdon)的评论已固定在“ 16年9月9日,5:05”中,因此不再是问题
达林

13

只需将其添加到根文件夹即可,这很流行,但是我发现如果需要更改该图标,则可能需要几天的时间进行更新...即使是缓存刷新也无法解决问题。


不要忘记Ctrl-C和重建。
杰森·格拉斯

9

许多人将cookie路径设置为/。这将导致每个收藏夹请求都至少以Chrome形式发送站点cookie的副本。将您的网站图标发送到您的无cookie域应该可以解决此问题。

<link rel="icon" href="https://cookieless.MySite.com/favicon.ico" type="image/x-icon" />

根据您获得的流量,这可能是添加链接的最实际的原因。

设置无cookie域的信息:

http://www.ravelrumba.com/blog/static-cookieless-domain/

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.