我有一个Grails应用程序使用它自己的tomcat在本地运行,我刚刚将favicon改成了一个新的。问题是我在任何浏览器中都看不到它。旧的收藏夹出现了,或者我根本没有收藏夹,但没有我的新收藏夹。我不认为这本身是圣杯的问题,更多的是收藏夹的问题。

favicon会发生什么?他们应该如何工作?我的浏览器中有许多书签,它们的图标错误,而且似乎永远不会被刷新。如何强制服务器/浏览器停止缓存它们?考虑到它们通常只有16x16,总是缓存它们似乎很愚蠢。为什么不在每次访问页面时都上传它们呢?这并不是一个巨大的开销。


当前回答

对于macOS上的Chrome,如果你不想像这里已经建议的那样删除整个Chrome favicon数据库,你可以只删除冲突的图标:

退出Chrome加载favicons数据库(此处使用sqlite):

sqlite3~/Library/Application\Support/Google/Chrome/Default/Favicons

搜索导致问题的文件

从收藏夹中选择*,其中url='http://mysite.dev/favicon.ico';

如果您对输出满意:

从收藏夹中删除url='http://mysite.dev/favicon.ico';


或者,您可以搜索可以重复使用以删除多个条目的模式:


搜索导致问题的多个文件

从url喜欢的收藏夹中选择*http://mysite.dev%';

同样,如果你对这样的回报感到满意:

从url类似的收藏夹中删除'http://mysite.dev%';


键入.ext并单击return退出sqlite重新启动Chrome

其他回答

下面是我如何使用一个简单的动画favicon和FireFox3.6.13(测试版)来管理它的。它可能也适用于FireFox的其他版本,如果不适用,请告诉我。这基本上是artlung的解决方案,但也可以处理.gif文件:

我通过FTP程序打开,下载了我的favicon.ico和favicon.gif文件,然后从服务器的文件中删除它们。然后我按照artlung的建议在浏览器中打开了它们:http://mysite.com/favicon.ico以及http://mysite.com/favicon.gif一旦这些地址加载并显示404个错误页面(“页面未找到”)然后,我将两个文件上传回服务器,PRESTO-正确的图标立即显示出来。

只需更改此文件名='favicon1.ico'

易于理解的

1:我不想摆弄代码(我的网站建设者不使用代码,它使用“上传文件”按钮,它自己做)

2:我尝试了CTRL+F5,但它对我不起作用,所以。。。。

我有一个解决方案:

IE:通过转到设置cog O清除所有浏览器历史记录和cookie

Chrome:转到X下方右上角的菜单,看起来像一个=,然后转到设置、历史记录、清除浏览数据,并选中所有适用的框(我做了历史记录、cookie并从一开始就清空了标题)

Chrome的收藏夹支持有问题-忽略这个答案

我写下这个答案的印象是,这就是刷新谷歌Chrome中的收藏夹所需要的。然而,事实证明,这只在前五分钟左右有效,直到图标在Chrome的历史同步中无可挽回地丢失。

原答覆

您不必清除缓存、重新启动浏览器或重写HTML,只需更改图标的URL一次,这样浏览器就会忘记以前缓存的图标。

假设您已经通过页面的<head>中的<link>元素定义了图标,那么您可以通过在控制台中运行这个标准的JS单行程序来实现这一点:

[].slice.call(document.querySelectorAll('head>link[rel$="icon"]')).map(function(ln){ln.href+='?v=2'});

有关可以为生产中的最终用户自动执行此操作的更高级实现,请参阅freshicon.js。

在文件路径末尾使用查询字符串。每个生成的查询字符串变量值必须不同。

如果以前的版本是:

<link rel=“icon”href=“http://example.com/favicon.ico?v=v1" />

OR

<link rel=“icon”href=“http://example.com/favicon.ico?v=stringA" />

那么下一个构建应该是:

<link rel=“icon”href=“http://example.com/favicon.ico?v=v2" />

OR

<link rel=“icon”href=“http://example.com/favicon.ico?v=stringB" />