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

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


当前回答

嗯,开销是开销,但是的,不会太大。

此外,浏览器有时对缓存文件“贪婪”。您可以清除缓存和/或重新启动浏览器,可能会看到更改。如果失败了。。。

我的廉价解决方案是:

访问您的文件:http://example.com/favicon.ico在浏览器中。从webroot中删除favicon.ico。参观http://example.com/favicon.ico再次在浏览器中,验证它是否丢失。将新文件上载到您的webroot。参观http://example.com/favicon.ico再次在浏览器中,验证它是新的。

如果这个顺序不起作用,那么其他事情正在发生。

其他回答

请按照以下步骤更改应用程序图标:

在项目中添加.ico文件。转到angular.json,在“项目”->“架构师”->“构建”->“选项”->“资产”中,在这里输入图标文件。请参阅favicon.ico的现有条目,了解如何执行此操作。转到index.html并更新图标文件的路径。例如

<link rel=“icon”type=“image/x-icon”href=“abc.ico”>

或者,用favicon.ico重命名图标文件并将其替换到目录中。

重新启动服务器。硬刷新浏览器,您就可以开始了。

通过销毁浏览器用来存储旧收藏夹图标的文件,您可以强制加载新收藏夹图标。

关闭浏览器。确保不再有浏览器进程在运行(例如,检查任务管理器中的chrome.exe或firefox.exe)。导航到浏览器存储用户文件的位置:对于Chrome,请转到Chrome数据目录。对于Firefox,请转到Firefox配置文件文件夹。删除收藏夹缓存。对于Chrome,删除Favicons和Favicons日志对于Firefox,删除favicons.sqlite

这几乎肯定会奏效。如果没有:

可能性1:浏览器的更新改变了收藏夹缓存的工作方式。请使用新说明编辑此答案。可能性2:你最喜欢的问题与过于激进的缓存无关。相反,这可能是一个资源加载问题——使用开发者工具,确保新的收藏夹图标下载正确。

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

很可能是网络浏览器问题。你必须从浏览器中删除缓存,关闭浏览器并重新打开。这应该会解决问题。

我不相信你的收藏夹会被刷新,直到你重新访问该页面,并假设你之前已经清除了浏览器缓存。

您的网络浏览器不会自行上网查看新的收藏夹图标。。。谢天谢地。

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

如果以前的版本是:

<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" />