我想设置一个从静态文件服务器而不是主 Web 服务器请求的网站图标以进行性能优化。
如果我指定 a<link rel="shortcut icon" href="http://cdn.site.com/favicon.ico">
但/favicon.ico
在我的站点根目录中也有 a 作为后备,浏览器会更喜欢哪个?浏览器(以及哪个?)是否仍会寻找/favicon.ico
,从而使迁移到静态文件服务器毫无用处?
我想设置一个从静态文件服务器而不是主 Web 服务器请求的网站图标以进行性能优化。
如果我指定 a<link rel="shortcut icon" href="http://cdn.site.com/favicon.ico">
但/favicon.ico
在我的站点根目录中也有 a 作为后备,浏览器会更喜欢哪个?浏览器(以及哪个?)是否仍会寻找/favicon.ico
,从而使迁移到静态文件服务器毫无用处?
我做了上面建议的测试。我在域的根目录中放置了一个 /favicon.ico 和一个链接,然后在以下位置启动了页面:
他们都显示了加载的图标<link rel="shortcut icon" href="http://cdn.site.com/favicon.ico">
(位于外部服务器上)。我查了access.log
,没有要求/favicon.ico
!
然后我注释掉<link>
,在所有浏览器中再次检查,他们/favicon.ico
在access.log
.
答案是:在大多数现代浏览器上,链接应该胜过本地文件,但它确实取决于非主流浏览器的实现(尽管您可能并不真正关心除 IE、Firefox、Safari 和 Chrome 之外的其他浏览器)
自己测试它也应该很简单。只需将favicon.ico
文件放在站点文件夹中,并在静态服务器上添加一个指向不同外观图标文件的链接,然后查看哪个在不同浏览器中加载。
不要忘记浏览器并不是唯一会请求网站图标的东西——许多爬虫和其他应用程序也会这样做。