浏览器会首先请求/favicon.ico或<link />吗?

时间:2009-10-12 13:34:43

标签: http browser cross-browser favicon

我想设置一个从静态文件服务器而不是主Web服务器请求的favicon,以进行性能优化。

如果我指定<link rel="shortcut icon" href="http://cdn.site.com/favicon.ico">但我的网站根目录中有一个/favicon.ico作为后备广告,浏览器会选择哪种广告?浏览器(以及哪些?)仍在寻找/favicon.ico,这使得迁移到静态文件服务器无用吗?

3 个答案:

答案 0 :(得分:30)

我做了上面建议的测试。我将一个/favicon.ico放在一个域的根目录和一个链接中,然后在页面中启动:

  1. Opera 10
  2. Opera 9.64
  3. Firefox 3.5
  4. IE 6
  5. IE 7
  6. IE 8
  7. Safari 4
  8. 他们都显示了加载<link rel="shortcut icon" href="http://cdn.site.com/favicon.ico">的图标(位于外部服务器上)。我查看了access.log,没有/favicon.ico的请求!

    我随后注释了<link>,并在所有浏览器中再次进行了检查,他们在/favicon.ico中显示了access.log图标和相应的条目。

答案 1 :(得分:7)

答案是:链接应该胜过大多数现代浏览器上的本地文件,但它实际上取决于非主流浏览器的实现(尽管你可能并不真正关心其他浏览器,而不是IE,Firefox,Safari和铬)

自己测试它也应该很简单。只需将favicon.ico文件放在站点文件夹中,并在静态服务器上添加指向外观不合适的图标文件的链接,然后查看在不同浏览器中加载的文件。

答案 2 :(得分:3)

不要忘记浏览器不是唯一会请求favicon的东西 - 许多抓取工具和其他应用程序也会这样做。