favicon不会被Firefox显示

我知道这个问题在这个网站上已经被问过至less一千次了,但是我已经阅读了很多这样的主题,我认为自己很有知识,很less有人问任何问题,而宁愿自己做研究。

然而,这个问题太奇怪了,没有希望得到真正的启迪(因为这个问题已经经常讨论了,而且我还是无法从那里读到),下面是我的问题:

favicon.ico存在,和(本地托pipe的开发网站) http://website/favicon.ico显示正确的图标。 它的大小只有198字节,所以我在Firefox的about:config 1024字节中发现的大小限制被遵守。 根据网站上的图标,浏览器在网页上没有任何内容时,应该自行寻求网站图标。 但是,我的Apache日志清楚地显示Firefox(9.01)甚至从来没有要求它。

下一个:当我添加

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

我仍然没有得到一个图标。

下一个:当我反而使用

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

(注意尾随“?”)我突然得到一个图标。 它不能是caching问题! 首先,我已经清除了caching,第二,正如我上面提到的,我已经成功地通过它的URL http://website/favicon.ico加载到Firefox的图标文件

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

这是我的页面头:

 <!doctype html> <html> <head> <meta charset="utf-8"> <link rel="shortcut icon" href="/favicon.ico?" /> </head> ... 

一旦我追加至less“?” 之后“ico”的作品。

这是服务器在请求图标时发送的内容,因为有些人要求这样做。 我不知道为什么这将是有用的,因为a)我说我的caching是空的每个testing(检查与关于:caching太),和b)我说服务器甚至从来没有要求该文件,当它不显示向上。 Firefox只是不问没有“?” – caching空了! 只有当我使用附加的“?”时,请求才显示在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栏)并强制刷新它,确保你没有“正常”的caching问题 。 如果这样做的话,不需要下面的复杂解决scheme。


重要:

我原来的问题不能是一个caching问题:首先,我已经清除caching,第二,正如我上面提到的, 我已经成功地加载到Firefox的图标文件通过它的URL http://website/favicon.ico

所以我直接加载的时候(确实)在浏览器中find了正确的图标! 但是我仍然(有)显示为“favicon”的错误图标。 直接加载图标文件是(或是) 独立于实际图标位置中的显示(除了第一次加载时)。

但是 ,如果只有一个caching问题,强制刷新适用于你的问题/问题不是你的! 而你的答案不是这个问题的答案。

人们不应该忽视事实。 当你被大量的已经回答和/或无用的问题轰炸时,问题的质量也会受到影响。 我真的很惊讶,我要和那些仍然坚持刷新力量的人打架!


注意:您可以像使用StackOverflow一样使用cache-buster URL完全避免此问题,它们的favicon URL以.../img/favicon.ico?v=4f32ecc8f43d

如果正常caching清除措施失败(就像他们为我做的那样),在这里给出一个答案: “清除Firefox 3caching中的所有Favicons [如何]” – 这里是一个archive.org版本的链接,但它不会消失) 。

该页面中的步骤转载于此处:

  1. 安装Firefox附加SQLitepipe理器
  2. 从工具 – > SQLitepipe理器启动它
  3. 单击“数据库”菜单项(左上angular)并select“连接数据库”,input%APPDATA%\Mozilla\Firefox
  4. 打开Profiles文件文件夹并转到您使用的Profiles文件
  5. selectplaces.sqlite作为要编辑的数据库文件
  6. selectmoz_favicons表。 从右键上下文菜单中使用“空表”, 不要使用“删除表” (表必须在那里) 使用右键单击上下文菜单上的数据,并select“删除”想要删除(见下面的截图)

截图使用SQLite管理器删除一个条目

我开始怀疑Firefoxcaching图标与其他所有东西是分开的 – 这是唯一的解释匹配观察到的行为。 所以我googlesearch确认,并find上述url。 接下来,我将尝试清除特定的额外caching,看看会发生什么。

更新 – 解决:在使用“SQLitepipe理器”Firefox插件删除collections图像caching之后,所有的工作,因为它应该。

所以秘密就是Firefox中的EXTRA(sqlite)CACHE FOR FAVICONS,它不会被正常的“清除caching”命令清除。

2017年3月更新:我检查了这个Firefox插件,以及下面这个答案中提出的独立应用程序 ,都做这个工作。 SQLitepipe理器插件最近在2年前根据其Github项目页面进行了更新,但仍然在这种情况下做了必要的工作。 有分叉项目的人有更新,但这只是一个旁观。

很久以前,我知道,但FF 31.0 / Windows上的caching清除程序对我很有帮助 – 也许是新的。 Options -> network -> cached web content -> clear now 。 closuresFF,重启。 没有搞乱SqLite,新的favicon载入。

但是,还有另一个潜在的问题。 我试图刷新图标的网站的服务器有一个/var/wwwDocumentRoot 。 这个网站是在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" > 

正面临类似的问题。 只要打破图像的caching。 我正在使用MVC剃刀视图。

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

这里是如何做到这一点,而不会丢失所有的图标

  1. 获得一个可以打开SQLite文件的工具,我正在使用SQLite的DB浏览器

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

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

  4. 打开places.sqlite文件。

  5. moz_favicons

  6. 过滤并删除您的主机名的条目(请参阅附加图像的提示) 图片

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

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

我刚才有这个问题,似乎caching,cookies和历史没有效果,但我做了这个修复它。

1 – 右键单击​​书签(我的是在工具栏菜单中)2 – 点击属性3 – 然后点击取消(似乎刷新一些隐藏的caching)

即时确认点击确定/保存将具有相同的效果。