web-dev-qa-db-ja.com

Faviconの更新を強制するにはどうすればいいですか?

Grailsアプリケーションを独自のTomcatを使用してローカルで実行していますが、新しいアイコンにfaviconを変更しました。問題は私がどのブラウザでも見ることができないということです。古いファビコンが現れるか、私はまったくファビコンを取得できませんが、私の新しいファビコンは取得しません。これはGrails自体の問題ではなく、より多くの支持者の問題ではないと思います。

Faviconで何が起こるはずですか?彼らはどのように働いているはずですか?私のブラウザには間違ったアイコンを持ったたくさんのブックマークがあり、それらは決して更新されないようです。サーバー/ブラウザにそれらのキャッシュを強制的に停止させるにはどうすればよいですか?通常は16x16しかないので、常にそれらをキャッシュするのはかなり馬鹿げているようです。ページにアクセスするたびにそれらをアップロードしないのはなぜですか。それは正確に大きなオーバーヘッドではありません。

1464
Simon

あなたのサイトのfaviconを更新するためにあなたはあなたのファイル名のlinkタグとクエリ文字列を使ってブラウザに新しいバージョンをダウンロードさせることができます。これは、ユーザーがアップデートを確実に入手できるようにするために、運用環境で特に役立ちます。 

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

わかりました、10分のwtf'ing後、それを修正する簡単な方法はlineofbirdsのそれに近い

  1. Www.yoursite.com/favicon.ico(またはwww.yoursite.com/Apple-touch-icon.pngなど)と入力します。
  2. 押す enter
  3. ctrl+f5
  4. ブラウザを再起動します(IE、Firefox)。
803
alex

この回答はまだ与えられていないので、投稿すると思いました。私はウェブ全体を見回していましたが、地域開発におけるテストの好意をテストするための良い答えは見つかりませんでした。 

現在のバージョンのchrome(OSX上)では、次の操作を行えば、すぐにfaviconが更新されます。

  1. タブの上に移動
  2. 右クリック
  3. リロードを選択
  4. あなたのfaviconが更新されました

これは私がローカルでfaviconを更新するために見つけた最も簡単な方法です。 

252
Garry Polley

Faviconファイルの名前を変更して、新しい名前のHTMLヘッダーを追加します。

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

PHPを使用すると、ファビコンのMD5ハッシュをクエリ文字列として使用することもできます。

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

これにより、Faviconは変更されたときに常に更新されます。

コメントで指摘されているように、MD5ハッシュの代わりに最終更新日を使用して同じことを達成し、サーバーパフォーマンスを少し節約することもできます。

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

ブラウザが古いファビコンを保存するために使用しているファイルを破壊することで、新しいファビコンを強制的にロードすることができます。

  1. ブラウザを閉じてください。ブラウザプロセスが実行されていないことを確認してください(例:タスクマネージャでchrome.exeまたはfirefox.exeを確認してください)。
  2. ブラウザがユーザファイルを保存している場所に移動します。
  3. Faviconキャッシュを削除します。
    • Chromeの場合はFaviconsFavicons-journalを削除します
    • Firefoxの場合、favicons.sqliteを削除します

これはほぼ間違いなく機能します。そうでない場合:

  • 可能性1:お使いのブラウザのアップデートにより、ファビコンキャッシュの機能が変わりました。新しい指示でこの回答を編集してください。
  • 可能性2:あなたのfavicon問題は、過度に積極的なキャッシングとは何の関係もありません。代わりに、それはリソース負荷の問題かもしれません - 開発者ツールを使用して、新しいfaviconが正しくダウンロードされていることを確認してください。
48
konzo

Mac OS X上のChromeでは、faviconキャッシュでファイルを削除できます 

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

オーバーヘッドはオーバーヘッドですが、それほど大きくはありません。

また、ブラウザはキャッシュされたファイルに貪欲です。キャッシュをクリアしたりブラウザを再起動したりすると、変更が反映される可能性があります。それでも失敗したら...

私の安っぽい解決策は、

  1. ブラウザの http://example.com/favicon.ico にあるファイルにアクセスしてください。
  2. あなたのWebルートからfavicon.icoを削除します。
  3. ブラウザで http://example.com/favicon.ico に再度アクセスし、見つからないことを確認します。
  4. 新しいものをあなたのウェブルートにアップロードしてください。
  5. ブラウザで http://example.com/favicon.ico にアクセスして、新しいブラウザであることを確認します。

そのシーケンスがうまくいかない場合は、他に何かが起こっています。

16
artlung

ブラウザによっては処理方法が異なりますが、通常はサイトのデフォルトページに移動してハードリフレッシュを実行します。 CTRL + F5、通常それを更新するでしょう。

14
Mitchel Sellers

MAC上:  + Shift - R または押し下げる Ctrl ブラウザのリロードボタンをクリックしてください。

10
badmadrad

Internet Explorerの場合、別の解決策があります。

  1. インターネットエクスプローラを開きます。
  2. メニュー>ツール>インターネットオプションをクリックします。
  3. 一般>インターネット一時ファイル> "設定"ボタンをクリックしてください。
  4. 「ファイルを見る」ボタンをクリックしてください。
  5. 古いfavicon.icoファイルを見つけて削除します。
  6. ブラウザ(Internet Explorer)を再起動してください。
9
nam

おそらくWebブラウザの問題です。ブラウザからキャッシュを削除し、ブラウザを閉じて再度開く必要があります。それで解決するはずです。

私はあなたがそのページを再び訪れるまで、そしてあなたが以前にあなたのブラウザのキャッシュをクリアしたと仮定するまであなたのお気に入りがあなたのお気に入りで更新されるとは思わない。

あなたのウェブブラウザはそれ自身で新しいfaviconをチェックするためにインターネットに出かけないでしょう。

9
Senica Gonzalez

新しいタブで開く

上記のこと(キャッシュのリセット、更新、リンクタグの使用など)の多くを試してみましたが、.htaccessファイルを確認してExpiresByType変数をリセットしました。

しかし、これがChrome(25.0.x)とSafari(6.0.1)の両方でついに私のために働いたものです:

  1. キャッシュをフラッシュする
  2. Faviconを<link>タグでハードリンクする
  3. mysite.com/favicon.icoに移動する
  4. 新しいタブでmysite.comを開く

(ステップ3まで、同じタブを更新しても古いアイコンが再現されていました。)

7
Old McStopher

Mac OS上の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. Chromeを再起動
7
MrUpsidown

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

応答に "Expires:"ヘッダーを付けると、クライアントブラウザはそのタイムスタンプの後にアイコンを再要求します。積極的な開発をしている間、将来的には有効期限のタイムスタンプを1秒か2秒に設定し、常にこれを取得することができます。

6
Dean J

Chromeのfaviconサポートはバグがあります - この回答は無視してください

この答えは、Google Chromeでお気に入りを更新するのに要したものだという印象の下に書いています。しかし、これは最初の5分間ほどしか機能しないことがわかります。アイコンが Chromeの履歴同期で取り返しのつかないほど失われるまで になります。

元の答え

キャッシュをクリアしたり、ブラウザを再起動したり、 HTMLを書き換える必要はありません。ブラウザが以前にキャッシュされたアイコンを忘れてしまうように、アイコンのURLをonceに​​変更するだけです。

ページの<link><head>要素でアイコンを定義したと仮定すると、コンソールで次のstandard-JS one-linerを実行することでそれを行うことができます。

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

本番環境のエンドユーザーに対して自動的にこれを実行できる、より高度な実装については、 freshicon.js を参照してください。

5

私は最近自分のブックマークを復元し、各ページにアクセスせずにFavIconsを復元する方法を探していました。私の検索で私はこのスレッドにたどり着きました。 

似たような状況にある人のためには、単にFAVICON RELOADERアドオンをダウンロードしてください。インストールが完了すると、「ブックマーク」ドロップダウンメニューに「お気に入りアイコンの再読み込み」コマンドが表示されます。

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

4
bgc

PHP ..を使用している場合は、この行も使用できます。

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

ページを読み込むたびにfaviconが更新されます。

4
Shakeel Ahmed

それが変更されたことを確認するためにそれをデバッグすることだけに興味があるなら、あなたは単にあなたの/ etc/hostsファイルにダミーのエントリを追加して、新しいURLを打つことができます。そのファビコンはすでにキャッシュされていないので、新しいファビコンが機能していることを確認できます。

Faviconの名前を変更するだけでは、ユーザーに新しいコピーを取得させることはできません。

3
cpjolicoeur

Chromeバージョン:68.0.3440.106

アドレスバーにあるChromeを再起動してください。 chrome://restart 

2
Lowryder

これはChromeでも動作します。

  • macの場合:ファイルを削除する

    $ {user.home} /ライブラリ/アプリケーションのサポート/ Google/Chrome /デフォルト/ Favicons

  • windowsの場合:ファイルを削除する

    C:\ Users [ユーザー名]\AppData\Local\Google\Chrome \ユーザーデータ\ Default\Favicons ジャーナル

ソース

2

私はこれが本当に古い質問であることを知っています、しかしそれはまた関連性のあるものでもあります、最近はmozillaにだけ当てはまります。 (私は、どんなExplorerがcozを実行しているのか私達が標準的でないブラウザ用にコーディングしていないのか分からない)。

ヘッダーにアイコンタグが含まれている場合、Chromeは正常に動作します。

Mozillaはこの問題をよく認識していますが、いつものように、迷惑な小さなものを修正することはありません。 6年後でさえも。

そのため、Firefoxでアイコンの更新を強制する方法は2つあります。

  1. すべてのクライアントにFirefoxのアンインストールを依頼してください。その後、再インストールしてください。

  2. URLバーにドメインだけを手動で入力します - httpまたはwww だけのドメイン(mydomain.com)は使用しないでください。

これはもちろんあなたのnsレコードがドメイン名だけのための解決を含んでいると仮定します。

1
rockmo

また、相対パスだけでなく、フルイメージURLを入力してください。

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

そしてそうではない: 

images/favicon.ico
1
Amr Elgarhy

これはchromeバグの回避策です。rel属性をstylesheetに変更してください。オリジナルのリンクは残してください。魅力のように働く:

顧客のサイトや本番コードを更新できるという要件もあり、他に解決策が見つからないため、この回避策を考え出しました。

1
user1427015

このファイル名= 'favicon1.ico'を変更するだけです。

0
Armin Alibasic

IIS Serverを再起動してみてください上記の手順を実行しても問題が解決しない場合お役に立てれば...

0
Murat Yıldız

単純な、

1:コードをいじる必要はありません(ps私のサイトビルダーはコードを使用しません、それは "ファイルのアップロード"ボタンを使用します、そしてそれはそれ自身をします)

2:やった CTRL+F5 そしてそれは私のためにうまくいきません....

私は解決策があります。

IE:設定画面を表示して、ブラウザのすべての履歴とCookieを消去するO

Chrome:Xの下の右上隅にあるa =のようなメニューに行き、次に設定、履歴、BROWSING CLEAR DATAの順に進み、該当するすべてのボックスをチェックします(履歴、Cookie、そしてキャッチを空にします)。時間の始まり)

0
Robert

シンプルなアニメーションのファビコンとFireFox 3.6.13(ベータ版)で管理した方法は次のとおりです。FireFoxの他のバージョンでもおそらく動作しますが、動作しない場合はお知らせください。これは基本的にartlungのソリューションですが、.gifファイルにも対応しています。

  1. FTPプログラムで開き、favicon.icoおよびfavicon.gifファイルをダウンロードし、
  2. その後、サーバーのファイルからそれらを削除しました。
  3. 次に、artlungが示唆したようにブラウザでそれらを開きました: http://mysite.com/favicon.ico AND http://mysite.com/favicon.gif 404エラーページ(「ページが見つかりません」)が読み込まれて表示されたアドレス
  4. その後、両方のファイルをサーバーにアップロードし、さきがけ-正しいアイコンが即座に表示されました。
0
lineofbirds