我没有favicon.ico,但我的浏览器总是发出请求。
是否有可能阻止浏览器从我的网站制作favicon的请求?也许是HTML头中的META-TAG ?
我没有favicon.ico,但我的浏览器总是发出请求。
是否有可能阻止浏览器从我的网站制作favicon的请求?也许是HTML头中的META-TAG ?
当前回答
如果你使用nginx
# skip favicon.ico
#
location = /favicon.ico {
access_log off;
return 204;
}
其他回答
根据我们的经验,当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 !
如果你不使用HTML,它是由Flask或一些框架自动生成的,你可以在应用程序中添加一个虚拟路由,只返回虚拟文本来修复这个问题。
或 . . . 你可以添加图标:)
Eg for Python Flask Application。
@app.route('/favicon.ico')
def favicon():
return 'dummy', 200
把这个放进你的HTML头:
<link rel="icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVQI12P4//8/AAX+Av7czFnnAAAAAElFTkSuQmCC">
这个答案比其他答案稍大一些,但确实包含一个实际有效的PNG图像(1x1像素白色)。
在node . js,
res.writeHead(200, {'Content-Type': 'text/plain', 'Link': 'rel="shortcut icon" href="#"'} );
我通过使用内容安全策略HTTP响应报头解决了这个问题。通过使用这个,可以阻止浏览器进一步的媒体查询,如图像(其他类型也可以)。我添加了以下头的响应:
内容安全策略:img-src 'none'
问题是它会阻塞所有的图像查询。如果您的HTML有任何图像,它们将不会被加载。在我的情况下,这很可能是Firefox中的一个错误,因为浏览器正在请求favicon.ico的响应,其Content-type是text/xml!
它还取决于在客户端强制执行的实现此特性的浏览器。
访问https://content-security-policy.com获取CSP的完整指南。
干杯!