我知道这个问题在这个网站上已被问到至少一千次,但我已经阅读了很多这些主题,我认为自己很有见识,而且很少提出任何问题,而是更愿意做我自己的研究。
然而,这个问题是如此奇怪,没有真正启蒙的希望(因为这个问题经常被讨论过,我仍然无法从中阅读),这是我的问题:
favicon.ico存在,(本地托管的开发网站)http://website/favicon.ico
显示正确的图标。它的大小只有198字节,所以我在Firefox中发现的大小限制:1024字节的配置是坚持的。根据网页上关于favicons的智慧,浏览器应该在页面中没有任何内容时自行询问favicon。但是,我的apache日志清楚地显示Firefox(9.01)从未要求它。
下一篇:我加的时候
<link rel="shortcut icon" href="/favicon.ico">
我仍然没有得到一个图标。
下一篇:当我改用
<link rel="shortcut icon" href="/favicon.ico?">
(注意尾随“?”)我突然得到一个图标。 BUt它不能是缓存问题!首先,我已经清除了缓存,其次,如上所述,我已经通过其URL http://website/favicon.ico
成功将图标文件加载到Firefox中
我无法解释Firefox的这种行为。顺便说一句,Chrome显示正确的图标。
这是我的页面头:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="shortcut icon" href="/favicon.ico?" />
</head>
...
一旦我追加至少“?”在“ico”之后它起作用了。
这是服务器在请求图标时发送的内容,因为有些人要求这样做。我不知道为什么这会有用,因为a)我说我的缓存对于每个测试都是空的(用about:cache检查),和b)我说服务器甚至从未被要求提供文件,因为它没有显示起来。 Firefox没有问“没有”? - 缓存空了!只有当我使用附加的“?”时,请求才会显示在apache日志中。
Date Fri, 23 Dec 2011 12:53:22 GMT
Server Apache/2.2.20 (Ubuntu)
Last-Modified Fri, 23 Dec 2011 12:02:49 GMT
Etag "12c07fe-c6-4b4c132190e30"
Accept-Ranges bytes
Content-Length 198
Content-Type image/x-icon
首先,通过直接加载favicon URL(将其放入浏览器的URL栏)并强制刷新它,确保没有“正常”缓存问题。如果能完成这项工作,则无需下面的复杂解决方案。
我的原始问题不可能是缓存问题:首先,我确实清除了缓存,其次,正如我上面提到的,我已经通过其URL http://website/favicon.ico
成功将图标文件加载到Firefox中
所以我直接加载时确实在浏览器中获得了正确的图标!但我仍然有(有)错误的图标显示为“favicon”。直接加载图标文件(或者是)独立于实际的favicon位置中的显示(当然第一次加载时除外)。
但是,如果你只有一个缓存问题和强制刷新适用于你而不是这个问题/问题不是你的!你的答案不是这个问题的答案。
人们不应该忽视事实。当你被许多已经回答和/或无用的问题轰炸时,问题的质量目前和档案都会受到影响。令人惊讶的是,我必须与那些仍然坚持强制刷新才是答案的人一起战斗!
注意:您可以完全避免此问题,就像StackOverflow一样使用cache-buster URL,它们的favicon URL以.../img/favicon.ico?v=4f32ecc8f43d
结尾。
如果正常的缓存清除措施失败(就像他们为我做的那样),这里给出了答案:"Clearing All Favicons From Firefox 3 Cache [How-To]" - 和here is an archive.org version of the link (probably slower, but it won't go away)。
该页面的步骤在此转载:
%APPDATA%\Mozilla\Firefox
Profiles
文件夹,然后转到您使用的配置文件places.sqlite
作为要编辑的数据库文件(Firefox 61及更高版本:favicons.sqlite
)moz_favicons
表。在右键单击上下文菜单中使用“空表”,不要使用“删除表”(表必须在那里)或使用数据右键单击上下文菜单,并选择“删除”仅覆盖您的一个条目想要删除(见下面的截图)我开始怀疑Firefox将favicons与其他所有东西分开 - 这是与观察到的行为相匹配的唯一解释。所以我用Google搜索确认并找到了上面的网址。接下来我将尝试清除特定的额外缓存,看看会发生什么。
更新 - 已解决:使用“SQLite Manager”删除favicon缓存后,Firefox附加组件都可以正常工作。
因此,秘密就是Firefox中的EXTRA(sqlite)CACHE FOR FAVICONS,其中没有通过常规的“Clear Cache”命令清除。
2017年3月更新:我检查了这个Firefox附加组件以及the standalone app suggested in this answer below并且都做了这个工作。 SQLite Manager插件最近更新了〜2年前根据它的Github project page,但它仍然在这种情况下做它所需要的。有来自people who have forked the project的更新,但这只是一个旁边。
面临着类似的问题。只需打破图像的缓存。我正在使用MVC Razor View。
var link = document.createElement('link');
link.type = 'image/x-icon';
link.rel = 'shortcut icon';
link.href = "/images/[email protected]";
var head = document.head || document.getElementsByTagName('head')[0];
head.appendChild(link);
这是如何做到这一点而不会失去所有的favicon
about:profiles
。default profile
的根文件夹。 (参见附图中的提示)places.sqlite
(Firefox 61+上的favicons.sqlite
)文件。moz_favicons
表很久以前,我知道,但FF 31.0 / Windows上的缓存清除程序对我有用 - 也许它是新的。 Options -> network -> cached web content -> clear now
。关闭FF,重启。没有搞乱SqLite,新的favicon加载。
但是,还有另一个潜在的问题。我试图刷新图标的网站的服务器有DocumentRoot
的/var/www
。这个网站位于foo.com/fubar
,var/www/fubar
符合其他地方。换句话说,该网站距离DocumentRoot
一层。这适用于Chrome,Opera和IE,但不适用于Safari或FF:
<link rel="shortcut icon" href="/favicon.ico" >
FF寻找/var/www
中的favicon,而不是/var/www/fubar
。这适用于所有5个浏览器:
<link rel="shortcut icon" href="favicon.ico" >
我刚才遇到这个问题似乎缓存,cookie和历史没有效果,但我做了这个修复它。
1 - 右键单击书签(我在工具栏菜单中)2 - 单击属性3 - 然后单击取消(似乎刷新一些隐藏的缓存)
我确定点击确定/保存将具有相同的效果。