Firefox未显示收藏夹图标


73

确实知道仅在此网站上就已经至少问过这个问题一千遍了,但是我已经阅读了许多这样的话题,我确实认为自己非常博学,很少问任何问题,而是更喜欢自己研究。

但是,这个问题是如此奇怪,没有真正启发的希望(因为已经经常讨论这个问题,而我仍然无法从那里读到东西),这是我的问题:

favicon.ico存在,并且(本地托管的开发网站)http://website/favicon.ico显示正确的图标。它的大小仅为198字节,因此符合我在Firefox的about:config中设置的1024字节的大小限制。根据有关网站上图标集的常识,当页面中没有任何内容时,浏览器应自行请求图标集。但是,我的apache日志清楚地表明Firefox(9.01)甚至都没有要求它。

下一步:当我添加

<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico">

我仍然没有找到网站图标。

下一步:当我改用

<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico?">

(注意结尾的“?”)我突然DO得到一个图标。但是,它不能是缓存问题!首先,我已经清除了缓存,其次,如上所述,我已经通过其URL成功将图标文件加载到了Firefox中。http://website/favicon.ico

我无法解释Firefox的这种行为。顺便说一句,Chrome浏览器会显示正确的图标。

这是我的页面标题:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="shortcut icon" href="https://stackoverflow.com/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

评论不作进一步讨论;此对话已转移至聊天
elixenide

这是主持人第五次不得不回滚该帖子,以删除您反复告诉不要放回的相同内容。我现在将其锁定为无法进行所有编辑。
马丁·彼得斯

Answers:


136

首先,通过直接加载favicon URL(将其放入浏览器的URL栏中)并强制刷新,以确保您没有“正常”的缓存问题。如果那样做,则不需要下面的复杂解决方案。



重要:

我最初的问题不可能是缓存问题:首先,我确实清除了缓存,其次,如上所述,我已经通过其URL成功将图标文件加载到了Firefox中。http://website/favicon.ico

因此,当我直接加载时,确实(确实)在浏览器中获得了正确的图标!但是我仍然有(显示)错误的图标,显示为“收藏夹图标”。直接加载图标文件与(或曾经)独立于实际图标图标位置的显示(当然,这是首次加载时除外)。

但是,如果仅遇到缓存问题,并且强制刷新对您有效,则此问题/问题将不属于您!您的答案不是这个问题的答案。

人们不应该忽视事实。当您被许多已经回答的和/或无用的问题轰炸时,问题的质量目前和归档中都会受到影响。我如何与仍然坚持要用力刷新才是答案的人打架,真是太神奇了!



注意:就像StackOverflow一样,您可以使用缓存无效的URL来完全避免此问题,它们的收藏夹URL以结尾.../img/favicon.ico?v=4f32ecc8f43d

如果正常的缓存清除措施失败(就像他们对我所做的一样),则会在此处给出答案:“从Firefox 3缓存中清除所有图标[操作方法]” -这是该链接的archive.org版本(可能较慢) ,但不会消失)

该页面的步骤复制在这里:

  1. 安装Firefox附加SQLite Manager
  2. 从工具-> SQLite Manager启动它
  3. 单击“数据库”菜单项(左上方),然后选择“连接数据库”,输入 %APPDATA%\Mozilla\Firefox
  4. 打开Profiles文件夹并转到您使用的配置文件
  5. 选择places.sqlite(后来的Firefox 61:作为数据库文件进行编辑favicons.sqlite
  6. 选择moz_favicons表格。从右键单击上下文菜单中使用“空表”,不要使用“拖放表”(该表必须在其中),或者在数据上使用右键单击上下文菜单并仅对您所选择的一个条目选择“删除”要删除(请参见下面的屏幕截图)

屏幕快照,使用SQLite Manager删除条目

我开始怀疑Firefox缓存的图标与其他图标分开了-这是与观察到的行为匹配的唯一解释。所以我用谷歌搜索确认并找到了上面的URL。接下来,我将尝试清除该特定的额外缓存,看看会发生什么。

更新-已解决:使用“ SQLite Manager”删除Firefox加载项图标后,Firefox附加组件均可正常工作。

因此,秘诀就是Firefox中的FAVICONS EXTRA(sqlite)缓存,而常规的“ Clear Cache”命令则无法清除。

2017年3月更新:我检查了这个Firefox附加组件,还检查了下面此答案中建议的独立应用程序,两者都可以完成工作。根据其Github项目页面,SQLite Manager附加组件的最新更新时间大约为2年,但在此情况下,它仍然可以满足所需。分叉该项目的人有可用的更新,但这只是一个问题。


1
该工具的功能不外乎Firefox已内置的功能:“临时文件,历史记录,cookie,下载历史记录,表单历史记录”。
Mörre

4
我知道它有些旧,但是我发现在Chrome中,您可以简单地将浏览器指向favicon本身,因此您应该访问http://www.yourwebsite.com/favicon.icoFavicon缓存,然后再刷新
Philippe Gilbert 2015年

2
@PhilippeGilbert虽然可以在Chrome中使用,但在Firefox中却不能。
Izzy

1
谢谢您的回答,我以为我疯了!我不知道Firefox处理Favicon缓存的方式与其他方式不同。
Jeff Puckett

2
使用Firefox 61,您需要打开和编辑“ favicons.sqlite”数据库文件(而不是“ places.sqlite” db文件)。
哈里·曼萨基斯

3

面临类似的问题。只是打破图像的缓存。我正在使用MVC Razor View。

    var link = document.createElement('link');
    link.type = 'image/x-icon';
    link.rel = 'shortcut icon';
    link.href = "/images/favicon.ico?t=@DateTime.Now.Ticks";
    var head = document.head || document.getElementsByTagName('head')[0];
    head.appendChild(link);

3

这是在不丢失所有图标的情况下进行的方法

  1. 获取一个可以打开SQLite文件的工具,我正在将数据库浏览器用于SQLite

  2. about:profiles在浏览器中转到。

  3. 打开的根文件夹default profile。(请参见附件中的提示) 图片

  4. 打开places.sqlitefavicons.sqlite在Firefox 61+上)文件。

  5. moz_favicons桌子

  6. 过滤并删除您的主机名条目(有关提示,请参见附件图像) 图片

  7. 保存文件(参见图片) 图片

  8. 访问您的网站,它将显示新的图标


是的,效果也一样。我只是尝试了最初提出的工具和您使用的工具,并且处理方式都非常相似,尽管主观上至少在我刚刚尝试时,短暂地,我更喜欢Firefox附加组件,但是并没有太大的明显区别。
Mörre

1
顺便说一句,仅供参考:因为我现在自己将它包含在我的答案中,所以我很乐意从您的答案顶部删除我在答案中发布的URL的archive.org链接,谢谢!我认为这是可以的,因为您明确声明这是“接受的答案”中的链接,否则我不会梦想以这种方式干预其他人的文本。
Mörre


1
@ AhmedMostafaAbdel-Baky在这里,您正在直接编辑SQLite文件,因此我认为它应该起作用
Suraj

3
除了必须打开和编辑“ favicons.sqlite”数据库文件(而不是“ places.sqlite” db文件)之外,该解决方案对Firefox 61来说是可行的。
哈里·曼萨基斯

2

我知道很久以前,但是FF 31.0 / Windows上的缓存清除过程对我有用-也许是新的。Options -> network -> cached web content -> clear now。关闭FF,然后重新启动。不用担心SqLite,新的图标加载。

但是,还有另一个潜在的问题。我尝试刷新其图标的网站服务器DocumentRoot/var/www。该网站位于foo.com/fubarvar/www/fubar与其他地方链接。换句话说,该网站距离较上一级DocumentRoot。这适用于Chrome,Opera和IE,但不适用于Safari或FF:

<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico" >

FF在中查找收藏夹图标/var/www,而不是/var/www/fubar。这适用于所有5种浏览器:

<link rel="shortcut icon" href="favicon.ico" >

我只是尝试使用FF 52并从网络设置页面中清除缓存,以及从隐私选项中使用“清除最近的浏览历史记录”并没有影响SQLite数据库,它仍然保持不变。您的第二条评论“ FF在/ var / www中寻找favicon”与此处的主题无关,这只是非常简单和基本的“ URL科学”,并且是您个人Web服务器设置的问题。
Mörre

-2

我现在遇到了这个问题,似乎缓存,Cookie和历史记录都没有影响,但是我这样做可以解决此问题。

1-右键单击书签(我的位于工具栏菜单中)2-单击属性3-然后单击“取消”(似乎刷新一些隐藏的缓存)

我确定单击“确定” /“保存”将具有相同的效果。


奇怪的是,图标显示在书签菜单中。只是不在选项卡上。
形成鲜明
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.