我有一个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文件并使用新名称添加一个html标题,例如:

<link rel="SHORTCUT ICON" href="http://www.yoursite.com/favicon2.ico" />

要刷新站点的收藏夹图标,您可以使用文件名上的链接标记和查询字符串强制浏览器下载新版本。这在生产环境中尤其有助于确保用户获得更新。

<link rel="icon" href="http://www.yoursite.com/favicon.ico?v=2" />

这是chrome bug的解决方法:将rel属性更改为样式表!但保留原始链接。就像一个魅力:

我提出了这个解决方案,因为我们还需要能够更新客户的站点/生产代码,我没有找到任何其他解决方案。

根据浏览器的不同,它们的处理方式也有所不同,但通常我会发现会转到站点的默认页面,然后进行硬刷新。CTRL+F5(或在macOS上的¨Command+SHIFT+F5)通常会使其更新。

它可能对少数人有用,但我也遇到了同样的问题,并发现它与文件渗透有关,所以我给了它777权限,它起了作用,当然,在您确定问题存在后,请确保将权限改回更安全的值。