web-dev-qa-db-ja.com

IEのファビコンキャッシュをクリアする方法は?

私のウェブサイトに定義されたお気に入りのアイコンがあります:

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

サイトにアクセスしたブラウザafterアイコンを追加すると、ファビコンを正常に表示できます。しかし、私のブラウザはアイコンの表示を拒否しています。

私が考えることができるリンクのすべてのバリエーションを試しました:

<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)はサーバーからの取得(フィドラーからの監視)を試みることさえ拒否します。

私は何度もキャッシュをクリアしようとしました:

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

この回答のアレックス お気に入りのアイコンは通常のWebコンテンツとは異なる方法でキャッシュされると考えており、通常の消去ルールに従わない。

質問は次のようになります:Internet Explorerのお気に入りアイコンキャッシュをクリアするにはどうすればよいですか?

こちらもご覧ください

29
Ian Boyd

履歴にファビコンの有無を保存します。リセットする場合は、履歴を消去します。 ここに包括的なFAQがあります


編集:ブログを引用し、広範な答えと呼ぶ:

私のサイトのファビコンがIE7に表示されないのはなぜですか?

これは、2007-03-01に最初に公開された投稿の再投稿です。オリジナルは こちら にあります。このバージョンは、現在の現実と一致するように更新されました。

Microsoftにいたとき、IE7のFaviconストーリーの修正を担当する開発者でした。元のIE6の動作は、ユーザーがサイトをお気に入りにしたときにファビコンを一度ダウンロードすることでした。私はこの狂気がどのように機能するかの詳細に深く入りたくありませんが、なぜそれがそんなに壊れているように見えるのかを理解するための重要な情報はこれです:サイトのURLとサイトのファビコンのURLの間のマッピングIEの履歴データベースに保存され、実際にはアイコンの一部がインターネット一時ファイルフォルダーに保存されます。したがって、履歴またはキャッシュをクリアした場合、またはいずれかのアイテムが期限切れになった場合、アイコンは永久に消えてしまいます。

IE7に早送りします。 IE6が出荷されてから2年以上(3?)タブブラウジングを実装し、タブに正しいファビコンを表示する必要があります。そこで、最初のアクセス時に常にアイコンをダウンロードするように、Faviconコードを更新しました。また、このコードは、ファビコン(404)がないか、何らかの方法で無効だった(ExtractIcon()が失敗した)ことを記憶しています。

マイクロソフトにいる間に書いたMini-Faq(最後に1つのボーナス質問があります)は次のとおりです。

Q:IE7のサイトにファビコンを表示するにはどうすればよいですか?
A:2つの方法があります。最初の方法は、ドメインのルートに_favicon.ico_というファイルを置くことです。 2つ目は、_<link>_タグと_rel="shortcut icon"_値を使用し、href値を表示するアイコンのURLに設定することです。

Q:IEファビコンをダウンロードする頻度は?
A:IEユーザーが最初にサイトにアクセスしたときにアイコンをダウンロードします。アイコンはクライアントマシンのインターネット一時ファイルフォルダに保存されます。ファビコンに関する追加のメタデータは、ユーザーのURL履歴データベースに保存されます。いずれかのストアがクリアされるか、ファビコンに関連するアイテムが自然に期限切れになると、アイコンが再びダウンロードされます。複数のページ(またはサイト)が同じファビコンを共有している場合、一度だけダウンロードされます。IE負荷を軽減するためにアイコンをできるだけ数回ダウンロードするのは大変ですサーバー。

Q:訪問したいくつかのサイトで間違ったファビコンが表示されます。どうすれば修正できますか?
A:何らかの方法で履歴データベースが破損した場合、これが発生する可能性があります。最も単純な解決策は、[ツール]メニューの[閲覧の履歴の削除]を使用してキャッシュと履歴ストアをクリアすることです。

Q:あなたのサイトにあなたが説明したようにfavicon.icoを置いたが、まだ表示されない。
A:実際には.ico(アイコン)ファイルでなければなりません。ビットマップ、png、gifなどは機能しません。 IE7は、ファビコンをインターネット一時ファイルフォルダーにダウンロードし、ファイルで ExtractIcon() を呼び出します。これが失敗した場合、ファビコンの代わりにデフォルトのアイコンが表示されます。

Q:ファビコンが本当にアイコンであることを確認しましたが、まだ表示されません。
A:IEはTemporary Internet Filesフォルダからアイコンをロードするため、アイコンファイルにno-cacheディレクティブを設定している場合、IEはアイコンを表示できず、代わりにデフォルトアイコンが表示されます。 Fiddler を使用して確認します。

Q:サイトのすべてのページに異なるファビコンを作成するにはどうすればよいですか?
A:各ページに異なるアイコンを指す異なるタグを付けます。

Q:サイトのファビコンを別のアイコンに変更しましたが、古いものはまだIEに表示されます。 IEを強制的に更新するにはどうすればよいですか?
A:ドメインのルートにfavicon.icoファイルを置くだけの場合、IE =変更されたかどうかを知る方法がありません。更新を強制するには、タグを使用して、以前に使用したものとは異なるファイル名をポイントする必要があります。現在のファイル名は、Url Historyデータベースに保存されている既知のファイル名と比較されますIEファイル名が変更されたことを確認すると、新しいアイコンをダウンロードします。または、ユーザーに履歴とキャッシュをクリアするように依頼できます([ツール]、[インターネットオプション]、[閲覧履歴の削除]) 、これはIEに新しいファイルをダウンロードさせる。

Q:まだ壊れているのは何ですか?
A:2つのこと:

  1. タグを使用して別の場所を指定する場合、hrefメンバーは完全修飾である必要があり、タグを尊重しません。
  2. タグはrel値として「ショートカットアイコン」を持っている必要がありますが、これはrelタグ内の空白が値のリストを示すというW3C仕様に違反しています。 IEは、「ショートカットアイコン」を単一の値として扱います。幸いなことに、これは「ショートカット」を表示して無視し、「アイコン」文字列のみに注意を払う他のブラウザで機能します。

IE7のファビコンについて私が受け取った質問のほとんどをカバーするはずです。さらに質問がある場合は、お気軽にお問い合わせください。

36
i_am_jorf

クローバーを使用して、任意のキャッシング戦略を回避しようとすることができます:ランダムGETパラメーターを追加します。

 favicon.ico?def=abcdefghijklmn

それはハックですが、適切なキャッシングヘッダーなどが機能しない場所で機能することがよくあります。

15
Pekka 웃

ファビコンファイルを直接参照すると(例 http://www.mydomain.com/favicon.ico )、F5(場合によってはCtrl + F5)をクリックすると、アイコンが更新されます。

これはIEおよびFirefoxで動作します。

4
Rob Willis

IE8とIE9の両方で、hrefに絶対パスを使用する必要があります。どのリンクrelを使用しても、相対パスは機能しません。 type =も必要ありません。

以下は、すべてのブラウザー(IE、FF、Chrome、Safari、OperaおよびSea Monkey))で最適に機能しました。

<link rel="shortcut icon" href="http://domain.com/favicon.ico" />
4
Kyle W
<link rel="shortcut icon" href="@Url.Content("~/favicon.ico?xyz=10001")" type="image/x-icon" />

ハックにもかかわらず、これで問題が解決しました。

0
Kurisa12