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

Jac*_*ask 8 browser favicon http cross-browser

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

如果我指定了一个<link rel="shortcut icon" href="http://cdn.site.com/favicon.ico">/favicon.ico我的网站根目录中还有一个后备,这会让浏览器更喜欢吗?浏览器(以及哪些?)仍在寻找/favicon.ico,使移动到静态文件服务器无用吗?

Jac*_*ask 30

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

  1. 歌剧10
  2. Opera 9.64
  3. Firefox 3.5
  4. IE 6
  5. IE 7
  6. IE 8
  7. Safari 4

他们都显示了加载的图标<link rel="shortcut icon" href="http://cdn.site.com/favicon.ico">(位于外部服务器上).我查了一下access.log,没有要求/favicon.ico!

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


Mik*_*scu 7

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

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