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

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

有帮助吗?

解决方案

为了刷新您的网站的Favicon,您可以强迫浏览器使用链接标签和文件名上的Querystring下载新版本。这在生产环境中特别有用,以确保您的用户获得更新。

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

其他提示

好的,经过10分钟的WTF',修复它的简便方法与Lineofbird的近距离

  1. 输入www.yoursite.com/favicon.ico(或www.yoursite.com/apple-touch-icon.png等)
  2. 进入
  3. Ctrl+F5
  4. 重新启动浏览器(即Firefox)

这个答案尚未给出,所以我想我会发布它。我在网络上浏览了整个网络,并没有找到在本地开发中测试Favicons的好答案。

在当前版本的Chrome(OSX上)中,如果您执行以下操作,您将获得即时的Favicon刷新:

  1. 悬停在标签上
  2. 右键点击
  3. 选择重新加载
  4. 您的最爱现在应该刷新

这是我发现在本地刷新Favicon的最简单方法。

重命名Favicon文件,并添加带有新名称的HTML标头,例如:

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

如果您使用PHP,也可以将Favicon的MD5-Hash用作查询弦:

<link rel="shortcut icon" href="favicon.ico?v=<?php echo md5_file('favicon.ico') ?>" />

这样,当更改时,Favicon总是会刷新它。

正如注释中指出的那样,您还可以使用最后的修改日期而不是MD5-HASH来实现同一件事并节省服务器性能:

<link rel="shortcut icon" href="favicon.ico?v=<?php echo filemtime('favicon.ico') ?>" />

通过销毁浏览器用于存储旧粉丝的文件,您可以强迫加载新的文件。

  1. 关闭您的浏览器。确保不再有浏览器流程运行(例如,检查任务管理器 chrome.exe 或者 firefox.exe).
  2. 导航到浏览器存储用户文件的位置:
  3. 删除Favicon缓存。
    • 对于Chrome,删除 FaviconsFavicons-journal
    • 对于Firefox,请删除 favicons.sqlite

这几乎肯定会起作用。如果不:

  • 可能性1:浏览器的更新改变了Favicon缓存的工作方式。请用新的说明编辑此答案。
  • 可能性2:您的最爱问题与过度侵略性缓存无关。相反,它可能是一个资源加载问题 - 使用开发人员工具,请确保新的Favicon正在正确下载。

在Mac OS X上的Chrome中,一个可以使用Favicon Cache删除文件

${user.home}/Library/Application Support/Google/Chrome/Default/Favicons 

好吧,开销是头顶的,但是是的,不太大。

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

我的便宜解决方案是:

  1. 访问您的文件 http://example.com/favicon.ico 在您的浏览器中。
  2. 从您的webroot中删除favicon.ico。
  3. 访问 http://example.com/favicon.ico 再次在浏览器中,验证它缺失。
  4. 将新的网站上传到您的Webroot。
  5. 访问 http://example.com/favicon.ico 再次在浏览器中,验证它是新的。

如果该序列不起作用,那么还有其他事情正在发生。

根据浏览器的处理方式,它们的处理方式有所不同,但通常我会发现进入网站的默认页面并进行硬刷新。 Ctrl + F5, ,通常会让它进行更新。

在Mac上: + 转移-r 或压低 Ctrl 然后单击浏览器中的重新加载按钮。

对于Internet Explorer,还有另一个解决方案:

  1. 打开Internet Explorer。
  2. 单击菜单>工具> Internet选项。
  3. 单击常规>临时Internet文件>“设置”按钮。
  4. 单击“查看文件”按钮。
  5. 查找您的旧favicon.ico文件并删除它。
  6. 重新启动浏览器(Internet Explorer)。

很可能是Web浏览器问题。您必须从浏览器中删除缓存,关闭浏览器并重新打开它。应该解决它。

我不相信您的粉丝会在您重新访问该页面之前会刷新您的收藏夹,并假设您以前清除了浏览器缓存。

您的Web浏览器不会出去互联网以自己检查新的Favicon ...谢天谢地。

尝试在新标签中打开

我尝试了上面的许多事情(重置缓存,刷新,使用链接标签等),我什至检查了我的 .htaccess 文件并重置ExpiresbyType变量。

但这在Chrome(25.0.x)和Safari(6.0.1)中最终对我有用:

  1. 冲洗缓存
  2. 用力链接粉丝 <link> 标签
  3. 导航到 mysite.com/favicon.ico
  4. 开场 mysite.com 在新标签中

(直到步骤3,在同一选项卡中刷新的刷新不断重现旧图标。)

对于MacOS上的Chrome,如果您不想在这里建议删除整个Chrome Favicon数据库,则只能删除相互冲突的图标:

  1. 退出Chrome
  2. 加载Favicons数据库(在此处使用SQLite):

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

  1. 搜索引起问题的文件

select * from favicons where url = 'http://mysite.dev/favicon.ico';

  1. 如果您对输出感到满意:

delete from favicons where url = 'http://mysite.dev/favicon.ico';


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


  1. 搜索 多个文件 引起问题

select * from favicons where url like 'http://mysite.dev%';

  1. 再说一次,如果您对此的回报感到满意:

delete from favicons where url like 'http://mysite.dev%';


  1. 类型 .exit 并返回退出sqlite
  2. 重启铬

当您从Google请求Favicon时,您可以查看响应标题。

Last-Modified: Fri, 09 Jan 2009 16:35:02 GMT
Date: Thu, 01 Dec 2010 00:00:01 GMT
Expires: Fri, 01 Dec 2011 00:00:01 GMT
Cache-Control: public, max-age=31536000
Age: 7

如果您在响应中放置“到期:”标题,则客户浏览器将在时间戳之后重新要求图标。在进行积极发展的同时,您可以将到期的时间戳设置为一两秒钟,并始终将其设置为一个,尽管这是一个糟糕的长期计划。

Chrome的Favicon支持是错误的 - 无视此答案

我写了这个答案的印象是,这就是在Google Chrome中刷新Favicons所需要的。但是,事实证明,这仅在头五分钟左右才能工作,直到图标获取 在Chrome的历史同步中失去了不可挽回的失落.

原始答案

您不必清除缓存,重新启动浏览器, 或者 重写您的html-您只需要更改图标的URL即可, 一次, ,以便浏览器会忘记以前流连忘返的图标。

假设您已经通过 <link> 页面中的元素 <head>, ,您可以通过运行 标准JS一线 在控制台中:

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

有关此类更高级的实施,可以自动为生产中的最终用户执行此操作,请参见 刚刚刚好.

我最近还恢复了书签,并正在寻找一种在不访问每个页面的情况下恢复最爱的方法。我的搜索使我进入了这个线程。

对于那些在类似情况下的人,仅下载Favicon Reloader插件。安装后,您将在书签下拉菜单中找到“重新加载喜欢的图标”命令。

https://addons.mozilla.org/en-us/firefox/addon/faviconreloader/?src=api

如果您使用的是PHP ..,则也可以使用此行。

<link rel="shortcut icon" href="http://www.yoursite.com/favicon.ico?v=<?php echo time() ?>" />

它将在每个页面上刷新您的粉丝。

Chrome版本:68.0.3440.106

只需重新启动Chrome(在您的地址栏中):chrome://restart

如果您只是有兴趣调试它以确保它已更改,则可以在您的 /etc /hosts文件中添加虚拟条目并击中新的URL。那个Favicon已经无法缓存,您可以确保您的新产品正在工作。

除了更改Favicon的名称之外,您无法强迫用户获得新副本

这适用于Chrome:

  • 在Mac上:删除文件

    美元

  • 在Windows:删除文件

    c: users [用户名] appdata local google chrome chrome user daget default favicons c: users [username] appdata local local google chrome chrome chrome user def default favicons-journal-journalnalnalnalnal

资源

这是Chrome Bug的解决方法:将REL属性更改为样式表!保持原始链接。奇迹般有效:

我想出了这个解决方法,因为我们还需要能够更新客户的网站 /生产代码,而且我没有找到其他工作解决方案。

我知道这是一个非常古老的问题,但这也是仍然相关的问题,尽管这些天仅适用于Mozilla。 (我不知道Explorer会做什么,因为我们不为非标准浏览器编码)。

如果一个人在标题中包含图标标签,则镀铬表现良好。

尽管Mozilla很清楚这个问题,但是像往常一样,它们从未解决过烦人的小东西。甚至在6年后。

因此,有两种方法可以强迫使用Firefox刷新图标。

  1. 让所有客户卸载Firefox。然后重新安装。

  2. 手动仅在URL栏中键入域 - 请勿仅使用HTTP或www仅域(mydomain.com)。

当然,这假设您的NS记录仅包含域名的分辨率。

这是我使用简单动画的Favicon和Firefox 3.6.13(beta版本)对其进行管理的方式,它也可能适用于其他版本的Firefox,让我知道是否不这样做。这基本上是Artlung的解决方案,但也解决了.gif文件:

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

另外,请确保将完整的图像URL不仅仅是其相对路径:

http://www.example.com/images/favicon.ico

并不是:

images/favicon.ico

如果问题仍在继续 尝试重新启动IIS服务器. 。希望这可以帮助...

简单的,

1:我不想摆弄代码(PS我的网站构建器不使用代码,它使用“上传文件”按钮,并且它本身可以使用)

2:我尝试了 Ctrl+F5 而且对我不起作用。

我有一个解决方案:

即:通过进入设置COG O清除所有浏览器历史记录和cookie

Chrome:转到X下方右上角的菜单,看起来像A =,然后转到设置,历史记录,清除浏览数据并检查所有适用的框开始时间)

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

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

  1. 在项目中添加您的.ICO文件。
  2. 转到Angular.json,然后在“项目” - >“ Architect” - >“构建” - >“选项” - >“ Assets”中,然后在这里为您的图标文件进行条目。请参阅favicon.ico的现有条目以了解如何做。
  3. 转到index.html并更新图标文件的路径。例如,

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

或者,使用favicon.ico重命名您的图标文件,然后将其替换为目录。

  1. 重新启动服务器。
  2. 硬刷新浏览器,您很高兴。

西蒙,我想到目前为止,没有其他答案被接受。所以我相信这个 可以 尽管如此,还是您使用“资源插件”的情况下,要成为圣杯问题。

如果您的插件提供了一个Favicon(这是不合规的 - 很多),则它们可能会覆盖您想要使用的插件 - 鉴于您的插件本身就是在插件中。

如果从所有插件中删除Favicon临时解决问题,那么您很可能会遇到这一点:

http://jira.grails.org/browse/gpresources-134

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top