我没有favicon.ico,但我的浏览器总是发出请求。

是否有可能阻止浏览器从我的网站制作favicon的请求?也许是HTML头中的META-TAG ?


当前回答

你可以在<head>元素中使用下面的HTML:

<link rel="shortcut icon" href="#" />

我在强制完全刷新的情况下进行了测试,在Fiddler中没有看到favicon请求。(在IE8的compat模式下测试IE7标准和FF 3.6)

注意:这可能会下载html文件两次,所以当它隐藏错误时,它是有代价的。

其他回答

只需在HTML文件的<head>部分添加以下一行:

<link rel="icon" href="data:,">

解决方案特点:

100%有效的HTML5 很短的 不会引起ie8或更老版本的任何怪癖 不会使浏览器将当前HTML代码解释为favicon(这将是href="#"的情况)

有时,当HTML有一些注释代码,浏览器试图寻找一些东西时,就会出现这种错误。就像在我的情况下,我在烧瓶中注释了一个网页表单的代码,我得到了这个。

在花了2个小时后,我用以下方法修复了它:

1)我创建了一个新的python环境,然后它在注释的HTML行上抛出了一个错误,在此之前,我只抛出了错误'GET /favicon.ico HTTP/1.1" 404'

2)有时,当我有一个重复的代码,像python文件存在同名,然后我也看到了这个错误,尝试删除这些

如果你使用nginx

# skip favicon.ico
#
location = /favicon.ico {
    access_log off;
    return 204;
}

详细说明前面的答案,这可能是HTML文件本身的最短解决方案: <link rel="快捷图标" href="data:" /> .

测试工作,没有错误消息或失败的请求在Chrome版本94.0.4606.81

你可以使用.htaccess或服务器指令来拒绝访问favicon.ico,但是服务器会向浏览器发送拒绝访问的回复,这仍然会减慢页面访问。

当用户返回站点时,可以通过将favicon.ico保留在浏览器缓存中来停止浏览器请求favicon.ico。

首先,提供一个小的favicon.ico图像,可以是空白的,但要尽可能小。我做了一个黑白的,不到200字节。然后,使用.htaccess或server指令,将文件的Expires头设置为未来一两个月。当相同的用户回到你的网站,它将从浏览器缓存加载,没有请求将去你的网站。服务器日志里也没有404了。

如果你可以控制一个完整的Apache服务器或者一个虚拟服务器,你可以这样做

如果服务器文档根目录是/var/www/html,那么将其添加到/etc/httpd/conf/httpd.conf

Alias /favicon.ico "/var/www/html/favicon.ico"
<Directory "/var/www/html">
    <Files favicon.ico>
       ExpiresActive On
       ExpiresDefault "access plus 1 month"
    </Files>
</Directory>

然后,一个favicon.ico将适用于所有虚拟托管站点,因为您正在对它进行别名化。它将在用户访问后的一个月内从浏览器缓存中提取。

对于.htaccess,这是报告工作(不是由我检查):-

AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"