我没有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="快捷图标" href="data:" /> .
测试工作,没有错误消息或失败的请求在Chrome版本94.0.4606.81
你可以用
<link rel="shortcut icon" href="http://localhost/" />
这样就不会实际从服务器请求它。
有时,当HTML有一些注释代码,浏览器试图寻找一些东西时,就会出现这种错误。就像在我的情况下,我在烧瓶中注释了一个网页表单的代码,我得到了这个。
在花了2个小时后,我用以下方法修复了它:
1)我创建了一个新的python环境,然后它在注释的HTML行上抛出了一个错误,在此之前,我只抛出了错误'GET /favicon.ico HTTP/1.1" 404'
2)有时,当我有一个重复的代码,像python文件存在同名,然后我也看到了这个错误,尝试删除这些
在node . js,
res.writeHead(200, {'Content-Type': 'text/plain', 'Link': 'rel="shortcut icon" href="#"'} );
根据我们的经验,当Apache在请求favicon.ico时崩溃时,我们注释掉了.htaccess文件中的额外头文件。
例如,我们有 报头设置X-XSS-Protection "1;模式=块”
... 但是我们忘记了事先sudo a2enmod头文件。注释掉正在发送的额外标题解决了我们的favicon.ico问题。
我们还为开发设置了几个虚拟主机,只有在使用http://localhost和获取/favicon.ico时出现了500个内部服务器错误。如果您运行“curl -v http://localhost/favicon.ico”并得到关于主机名不在解析器缓存中或类似效果的警告,那么您可能会遇到问题。
它可能很简单,不抓取(我们尝试了,但没有成功,因为我们的根本原因不同),或者在apache2.conf或.htaccess中寻找可能导致奇怪的500个内部服务器错误消息的指令。
我们发现它失败得如此之快,在Apache的错误日志中没有任何有用的东西,花了整个上午的时间在这里和那里修改小的东西,直到我们解决了设置额外的头的问题,当我们忘记加载mod_headers !