【问题标题】:How to clear IE's favicon cache?如何清除 IE 的 favicon 缓存?
【发布时间】:2010-10-19 17:21:07
【问题描述】:

我为我的网站定义了一个最喜欢的图标:

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

在我添加图标后访问过该网站的任何浏览器都可以正常显示网站图标。但是我自己的浏览器拒绝显示图标。

我已经尝试了我能想到的所有链接变体:

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

<link rel="shortcut icon" type="image/x-icon" href="http://example.com/favicon.ico">

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

<link rel="icon" type="image/x-icon" href="http://example.com/favicon.ico">

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

<link rel="shortcut icon" type="image/x-icon" href="http://example.com/favicon.ico">
<link rel="icon" type="image/x-icon" href="http://example.com/favicon.ico">

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

没关系,Internet Explorer (9) 甚至拒绝尝试从服务器获取数据(来自 fiddler 的监控)。

我已经多次尝试清除缓存:

(gear) -> Internet Options -> General -> Delete -> Temporary Internet Files

Alex in this answer 认为收藏图标的缓存方式与常规 Web 内容不同,并且不遵循常规清除规则。

那么问题就变成了:如何清除 Internet Explorer 最喜欢的图标缓存?

另见

【问题讨论】:

  • 你试过重装IE9吗? ;)
  • 你试过favicon.ico?xyz=123456 吗?编辑:哦,你已经重命名了图标。那没关系
  • 你能显示一个实时网址吗? IE9 甚至不再使用 Favicon 了吗? (例如 Chrome 没有)
  • 我从不同的 IE9 浏览同一页面,它出现了;就像在 Firefox 和 Chrome 中一样。这是此计算机上此浏览器特有的内容(即缓存)
  • @Pekka 实际上,你赢了。添加favicon.ico?adsfadf 使IE 执行命中(当然是404)。但是当我把它放回 favicon.ico 时,图标出现了! +1。现在将其粘贴到答案中。

标签: internet-explorer caching favicon


【解决方案1】:

它在历史记录中存储网站图标的存在或不存在。如果您想重置它,请清除您的历史记录。 Here is a comprehensive FAQ.


编辑:引用博客,称其为广泛的答案:

为什么我的网站没有图标 出现在IE7中?

这是转发 最初发表于 2007-03-01。可以找到原文 here。此版本已更新为 符合当前的现实。

当我在微软时,我是 负责修复的开发人员 IE7 的 Favicon 故事。原本的 IE6的行为是下载 favicon 一次——当用户创建一个站点时 一个最爱。我也不想去 深入了解如何做到这一点 疯狂的作品,但关键部分 了解原因的信息 看起来很破是这样的:一个映射 在网站的网址和网址之间 因为该网站的 Favicon 将被存储 在 IE 的历史数据库和 实际上图标的一部分是 存储在临时 Internet 文件中 文件夹。因此,如果你清除了你的 历史或您的缓存,或项目 任何一个都过期了,图标 会永远消失。

快进到 IE7。已经结束了 自 IE6 发布以来的两(三?)年。 我们要实现标签式浏览, 我们希望标签显示 正确的网站图标。所以我更新了 始终下载的 Favicon 代码 首次访问时的图标。代码也 记得是否没有 Favicon (404) 或者它在某种程度上是无效的 (ExtractIcon() 失败)。

这是一个迷你常见问题解答(有一个奖励 最后的问题)我写的 当我在微软时:

问:如何让网站图标出现在 我的网站在 IE7 中?
答:有两种方法。 首先是在根目录下放一个文件 您的域称为favicon.ico。这 第二个是使用&lt;link&gt; 标签和 rel="shortcut icon" 值和 href 值设置为您的图标的 URL 希望显示。

问: IE 多久下载一次 favicon?
答: IE 会下载图标 当用户第一次访问该网站时。这 图标存储在临时 客户端上的 Internet Files 文件夹 机器。有关 favicon 存储在用户的 Url 中 历史数据库。如果任一商店是 清除,或有关的项目 favicon 已经自然过期了,那么 该图标将再次下载 下次访问。如果超过一页 (或站点)共享相同的图标,它 只下载一次。 IE 需要 好不容易把图标下载为 尽可能少的次数以减少负载 在服务器上。

问:我看到一些错误的网站图标 我访问的网站。我该如何解决这个问题?
答:如果历史数据库已经变成 以某种方式损坏,这可以 发生。最简单的解决方案就是 使用删除浏览历史记录(在 工具菜单)来清除缓存和 历史商店。

问:我在我的网站上放了一个 favicon.ico 你描述的,但它仍然没有
答:它实际上必须是 .ico (图标)文件。位图、png、gif、 等,将无法正常工作。 IE7会下载 您在临时 Internet 上的图标 文件夹并拨打ExtractIcon() on 文件。如果失败,我们将显示 默认图标而不是您的 网站图标。

问:我确认我的网站图标确实 是一个图标,但它仍然不是
答:因为 IE 会加载你的图标 临时 Internet 文件 文件夹,它必须能够实际 把它存放在那里。如果您正在设置 图标文件的 no-cache 指令, 那么IE将无法显示 您的图标,并将显示默认 图标。您可以使用Fiddler 验证。

问:如何创建不同的网站图标 对于我网站上的每个页面?
答: 每个页面上的不同标签,指向 到不同的图标。

问:我将网站的图标更改为 不同的图标,但旧的仍然 在 IE 中显示。我如何强制IE 更新?
答:如果你只是把 favicon.ico 文件位于您的根目录中 域,IE没有任何方法 知道它是否改变了。强制一个 更新,您需要使用标签和 指向与您不同的文件名 以前用过。当前文件名 与已知文件名进行比较 存储在 URL 历史数据库中。 当 IE 看​​到文件名已更改时, 它会下载你的新图标。 或者,您可以询问您的用户 清除他们的历史和缓存 (工具->Internet 选项->删除 浏览历史),这也将 强制 IE 下载新文件。

问:什么还是坏了?
答:两个 事情:

  1. 如果您指定一个 通过标签替代位置, href 成员必须是完全合格的 并且不尊重标签。
  2. 标签必须有“快捷方式 图标”作为 rel 值,但这是在 违反 W3C 规范说 rel 标签中的空格表示一个 值列表。 IE对待“快捷方式 图标”作为单个值。幸运的是 仍然适用于其他浏览器 “捷径”,不理它,只付钱 注意“icon”字符串。

这应该涵盖大部分 我收到的关于网站图标的问题 在 IE7 中。如果您还有更多问题, 随时问。

【讨论】:

  • 我应该提到这在 IE9 中可能已经改变:我不确定。
  • 我在获取更新的图标以在 IE9 中显示时遇到问题。我必须清除“删除浏览历史记录”下的“临时 Internet 文件”和“历史记录”才能看到它。
  • 这些规则在最新版本的 IE 中几乎肯定发生了变化。如果有更多最新信息,请随时编辑答案。
  • 我确认在IE10中清除“临时Internet文件”和“历史记录”足以解决问题(如果没有,请在您的网站中没有打开IE时清除那些,然后重新启动浏览器,然后重新打开页面)。顺便说一句,我不知道为什么 IE 的“网络监控工具”没有显示 favicon 加载请求...
【解决方案2】:

您可以尝试使用 crowbar 绕过任何缓存策略:添加随机 GET 参数。

 favicon.ico?def=abcdefghijklmn

这很 hacky,但它通常适用于适当的缓存标头等不适用的地方。

【讨论】:

  • 哦,我应该接受哪个答案真的很接近。这个答案真的很简单直接地解决了这个问题。 jeffamaphone 的回答解释了 为什么 它有效,但回答不太友好(破坏了我的历史)。同时你需要的代表更少。呸,我认为另一个答案应该列为 the 答案。它将帮助人们追随最多。
  • 如果有人对如何在 PHP 中执行此操作感兴趣,这是我使用的:
【解决方案3】:

在 IE8 和 IE9 中,您必须使用绝对路径作为 href。无论您使用什么链接 rel,相对路径都不起作用。 type= 也不是必须的。

以下在所有浏览器(IE、FF、Chrome、Safari、Opera 和 Sea Monkey)中对我来说效果最好:

<link rel="shortcut icon" href="http://domain.com/favicon.ico" />

【讨论】:

    【解决方案4】:

    如果您直接浏览到 favicon 文件(例如 http://www.mydomain.com/favicon.ico),然后单击 F5(有时是 Ctrl+F5),图标将会更新。

    这适用于 IE 和 Firefox。

    【讨论】:

      【解决方案5】:

      &lt;link rel="shortcut icon" href="@Url.Content("~/favicon.ico?xyz=10001")" type="image/x-icon" /&gt;

      这解决了我的问题,尽管它是一个 hack。

      【讨论】:

        【解决方案6】:

        您需要将图像转换为 .ico 格式。将其保存为 PNG 或 JPEG,然后使用此工具 http://www.favicon.cc/ 转换为 .ico 格式。只保存带有.ico 扩展名的图像是不够的,你必须转换。

        【讨论】:

        • 嘿 ShoxWeb。我已根据the FAQ从您的帖子中删除了您的签名。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        • 2012-11-12
        • 2011-05-10
        • 2011-09-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多