你必须包括<link rel ="icon"href ="favicon.ico"type ="image/x-icon"/>?

use*_*637 186 html favicon

我的head标签中没有包含以下代码行,但我的favicon仍然出现在我的浏览器中:

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

包含它的目的是什么?

Bri*_*ham 155

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

  • 或者如果您在根文件夹中没有favicon.ico,而在例如资产文件夹中 (2认同)

sib*_*urb 111

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

命名文件"favicon.ico"并将其放在网站的根目录中是W3C"劝阻"的方法:

方法2(不鼓励):将favicon放在预定义的URI上
指定favicon的第二种方法依赖于使用预定义的URI来标识图像:"/ favicon",它相对于服务器根目录.此方法有效,因为某些浏览器已编程为使用该URI查找favicon.
W3C - 如何向您的站点添加favicon

因此,为了涵盖所有情况,除了添加"rel"属性并将其指向同一.ico文件的推荐方法之外,我总是这样做.

  • 这样做的正当理由不是*因为它在某些情况下有效*,但*因为更好的方法在某些情况下不起作用* (10认同)
  • 是的,这是一个更正确的答案.没有与简单地在根目录中放置"favicon.ico"相关的标准,但是大多数浏览器会出于历史原因自动请求所述文件. (8认同)
  • Internet Explorer*发明了*favicon并在根目录中查找它.AFAIK,所有浏览器都这样做.这就是为什么我建议在根目录中放置一个favicon.ico,否则它将返回404并且大多数系统不会缓存...所以它一直请求它.在那里放一个图标,它将被正确缓存. (6认同)
  • 奇怪的是,[realFaviconGenerator](http://realfavicongenerator.net/faq/#why_ico_not_declared) 建议*不要*在 HTML 头部声明网站图标。 (4认同)
  • @FabrícioMatté,你是对的,根目录中没有关于“favicon.ico”的标准。然而,该草案已于 2011 年 2 月 17 日添加到[此处](https://github.com/whatwg/html/commit/ffdb3400748a2969bd92e249afb83e023d139c86)。它是原始[W3C Invites Broad Review of HTML5](https ://www.w3.org/2011/05/html5lc-pr.html.en)于2011年5月15日。HTML5最终于2014年10月28日完成。另请注意[如何向您的网站添加网站图标] (https://www.w3.org/2005/10/howto-favicon) 是 2005 年的草案。因此,将 `favicon.ico` 放在 root 中与 `link rel="icon"` 一样好。 (3认同)

nil*_*lsi 44

我使用它有两个原因:

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

  2. 如果我需要指定路径.


小智 13

只需将它添加到根文件夹就可以了,但我发现如果我需要更改图标,可能需要几天才能更新...即使缓存刷新也无法解决问题.


小智 6

很多人将他们的cookie路径设置为/.这将导致每个favicon请求发送网站cookie的副本,至少在chrome中.将您的favicon发送到您的cookieless域应该纠正这个问题.

<link rel="icon" href="https://cookieless.MySite.com/favicon.ico" type="image/x-icon" />
Run Code Online (Sandbox Code Playgroud)

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

有关设置无Cookie域的信息:

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