我没有favicon.ico,但我的浏览器总是发出请求。
是否有可能阻止浏览器从我的网站制作favicon的请求?也许是HTML头中的META-TAG ?
我没有favicon.ico,但我的浏览器总是发出请求。
是否有可能阻止浏览器从我的网站制作favicon的请求?也许是HTML头中的META-TAG ?
当前回答
我首先要说的是,在Web页面中有favicon是一件好事(通常)。
然而,这并不总是理想的,有时开发人员需要一种方法来避免额外的负载。例如,IFRAME会请求一个图标而不显示它。 最糟糕的是,在Chrome和Android中,IFRAME将生成3个favicons请求:
"GET /favicon.ico HTTP/1.1" 404 183
"GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 197
"GET /apple-touch-icon.png HTTP/1.1" 404 189
下面使用数据URI,可以用来避免虚假的favicon请求:
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
参考资料请参阅:
https://github.com/h5bp/html5-boilerplate/issues/1103 https://twitter.com/diegoperini/status/4882543836930048
更新1:
从评论(jpic)来看,Firefox >= 25不再喜欢上面的语法了。我在Firefox 27上进行了测试,它在Webkit/Chrome上仍然可以工作。
因此,这是一个新的浏览器,它应该涵盖所有最新的浏览器。我测试了Safari、Chrome和Firefox:
<link rel="icon" href="data:;base64,=">
我从“rel”属性值中省略了“快捷方式”名称,因为这只适用于较旧的IE,并且IE < 8的版本也不喜欢dataURIs。未在IE8上测试。
更新2:
如果你需要你的文档对HTML5进行验证,请使用以下方法:
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
其他回答
就我个人而言,我在我的HTML头标签中使用了这个:
<link rel="shortcut icon" href="#" />
你不能。你所能做的就是使映像尽可能小,并在将来设置一些缓存失效头(Expires, cache - control)。雅虎!不得不说favicon.ico请求。
简单点说:
<link rel="shortcut icon" href="#" type="image/x-icon">
它没有显示任何内容!!!!
你可以在<head>元素中使用下面的HTML:
<link rel="shortcut icon" href="#" />
我在强制完全刷新的情况下进行了测试,在Fiddler中没有看到favicon请求。(在IE8的compat模式下测试IE7标准和FF 3.6)
注意:这可能会下载html文件两次,所以当它隐藏错误时,它是有代价的。
为了测试目的,暂时阻止这些最简单的方法是在chrome中打开检查页面,右键单击页面上的任何位置并单击检查,或者按Ctrl+Shift+j,然后转到网络选项卡,然后重新加载页面,这将发送您的页面应该发出的所有请求,包括恼人的favicon.ico。您现在可以简单地右键单击favicon.ico请求,然后单击“阻止请求URL”。
以上所有答案都适用于控制应用程序源代码的开发者。如果您是一名系统管理员,正在计算负载平衡器或代理配置,并对favicon.ico的恶作剧感到恼火,那么这个简单的技巧可以更好地发挥作用。这个答案是针对Chrome的,但我认为应该有一个类似的替代方案,你会发现Firefox/Opera/Tor/任何其他浏览器:)