web-dev-qa-db-ja.com

Firefoxで表示されないファビコン

[〜#〜] do [〜#〜]このウェブサイトだけでこの質問が少なくとも1,000回尋ねられたことを知っていますが、読んだことがありますこれらのスレッドの多くは、私は自分自身を非常に知識があると考えており、めったに何も尋ねることはありませんが、代わりに自分の研究を行うことを好みます。

しかし、この問題は非常に奇妙であり、本当の啓発を期待することはできません(この質問は頻繁に議論されており、そこから読むことの恩恵を受けることができなかったため)。

favicon.icoが存在し、(ローカルでホストされている開発Webサイト)http://website/favicon.icoは正しいアイコンを表示します。そのサイズはわずか198バイトなので、Firefoxのabout:configの1024バイトのサイズ制限に準拠しています。 Web上のファビコンに関する知恵によれば、ページに何もない場合、ブラウザはファビコンを単独で要求する必要があります。ただし、ApacheログにはFirefox(9.01)がそれを要求することさえないことが明確に示されています。

次:追加するとき

<link rel="shortcut icon" href="/favicon.ico">

私はまだファビコンを取得しません。

次:代わりに使用する場合

<link rel="shortcut icon" href="/favicon.ico?">

(末尾の「?」に注意してください)突然[〜#〜] do [〜#〜]ファビコンを取得します。キャッシュの問題にはなりませんが!まず、キャッシュをクリアしました。次に、前述したように、URLを介してFirefoxにアイコンファイルを既に正常にロードしましたhttp://website/favicon.ico

Firefoxのこの動作を説明できません。 Chromeは、正しいファビコンを示しています。

これは私のページの頭です:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="shortcut icon" href="/favicon.ico?" />
</head>
...

少なくとも「?」を追加するとすぐに「ico」の後、動作します。

これは、アイコンが要求されたときにサーバーが送信するものです。一部のユーザーはこれを要求しているためです。 a)テストごとにキャッシュが空である(about:cacheでチェックされる)と述べ、b)サーバーがファイルを要求されることさえないので、これが役立つ理由はわかりません表示されません。 Firefoxは「?」なしで尋ねません。 -キャッシュが空です!リクエストは、追加された「?」を使用する場合にのみApacheログに表示されます。

Date    Fri, 23 Dec 2011 12:53:22 GMT
Server  Apache/2.2.20 (Ubuntu)
Last-Modified   Fri, 23 Dec 2011 12:02:49 GMT
Etag    "12c07fe-c6-4b4c132190e30"
Accept-Ranges   bytes
Content-Length  198
Content-Type    image/x-icon
73
Mörre

最初に、「通常の」キャッシュの問題がないことを確認してくださいファビコンURLを直接読み込んで(ブラウザのURLバーに入力して)強制更新します。それが仕事をするなら、以下の複雑な解決策の必要はありません。



重要:

私の元の問題はキャッシュの問題であってはなりません:最初に、私はdidキャッシュをクリアし、2番目に、前述したように、RL http://website/favicon.icoを介して

したがって、直接読み込まれたときにブラウザで正しいアイコンを取得するdo(did)!しかし、間違ったアイコンが「ファビコン」として表示されています。アイコンファイルを直接読み込むことは、実際のファビコンの場所にあるディスプレイの独立です(もちろん初めて読み込まれる場合を除く)。

ただしあなたにキャッシュの問題がある場合、この質問/問題はあなたのものではなく、強制更新があなたのために機能します!そして、あなたの答えはthis issueに対する答えではありません。

人々は事実を無視すべきではありません。既に回答済みの質問や役に立たない質問がたくさんある場合、質問の質は今のところ、またアーカイブにとっても苦労します。 フォースリフレッシュが答えだとまだ主張している人々と戦わなければならないのは驚くべきことです!



注: St​​ackOverflowと同様に、キャッシュ無効化URLを使用することにより、この問題を完全に回避できます。ファビコンURLは.../img/favicon.ico?v=4f32ecc8f43dで終わります。

通常のキャッシュクリア方法が失敗した場合(私の場合と同じように)ここに答えがあります: "Firefox 3キャッシュからすべてのFaviconsをクリア[How-To]" -および ここにありますリンクのarchive.orgバージョン(おそらく低速ですが、消えません)

そのページの手順は次のとおりです。

  1. FirefoxアドオンSQLite Manager をインストールします
  2. [ツール]-> [SQLite Manager]から起動します
  3. [データベース]メニュー項目(左上)をクリックして[データベースの接続]を選択し、%APPDATA%\Mozilla\Firefoxと入力します
  4. Profilesフォルダーを開き、使用するプロファイルに移動します
  5. 編集するデータベースファイルとしてplaces.sqliteを選択します(Firefox 61以降:favicons.sqlite
  6. moz_faviconsテーブルを選択します。右クリックコンテキストメニューから「空のテーブル」を使用し、「ドロップテーブル」を使用しないでください(テーブルが存在する必要があります)またはデータ上で右クリックコンテキストメニューを使用します削除する1つのエントリのみで[削除]を選択します(下のスクリーンショットを参照)

screenshot deleting an entry using SQLite manager

私は、Firefoxが他のものとは別にファビコンをキャッシュするのではないかと疑い始めました-観察された動作に一致する唯一の説明でした。そこで、確認のためにグーグルで検索し、上記のURLを見つけました。次に、その特定の余分なキャッシュをクリアして、何が起こるか見てみましょう。

PDATE-SOLVED:「SQLite Manager」Firefoxアドオンを使用してファビコンキャッシュを削除すると、すべて正常に機能します。

そのため、秘密はFirefoxのFAVICONSのEXTRA(sqlite)キャッシュで、IS通常の「キャッシュのクリア」コマンドではクリアされません。

2017年3月更新:このFirefoxアドオンと 以下の回答で提案されているスタンドアロンアプリ をチェックし、両方とも仕事をしています。 SQLite Managerアドオンは、 Githubプロジェクトページ に従って2年前に最後に更新されましたが、このコンテキストで必要なことは引き続き実行されます。 プロジェクトを分岐した人 から利用可能な更新がありますが、それは脇にあります。

132
Mörre

同様の問題に直面していました。画像のキャッシュを破壊するだけです。 MVC Razor Viewを使用しています。

    var link = document.createElement('link');
    link.type = 'image/x-icon';
    link.rel = 'shortcut icon';
    link.href = "/images/[email protected]";
    var head = document.head || document.getElementsByTagName('head')[0];
    head.appendChild(link);
3
gokul

ここにすべてのファビコンを失うことなくそれを行う方法があります

  1. SQLiteファイルを開くことができるツールを入手します。私は SQLiteのDBブラウザー を使用しています。

  2. ブラウザのabout:profilesに移動します。

  3. default profileのルートフォルダーを開きます。 (ヒントについては添付の画像をご覧ください) image

  4. places.sqlite(Firefox 61以降ではfavicons.sqlite)ファイルを開きます。

  5. moz_faviconsテーブルに移動します

  6. ホスト名のエントリをフィルタリングして削除します(ヒントについては添付の画像をご覧ください) image

  7. ファイルを保存(画像を参照) image

  8. ウェブサイトにアクセスすると、新しいファビコンが表示されます

3
Suraj Nath

昔、私は知っていますが、FF 31.0/Windowsでのキャッシュクリア手順は私にとってはうまくいきます-多分それは新しいでしょう。 Options -> network -> cached web content -> clear now。 FFをシャットダウンして、再起動します。 SqLiteをいじらずに、新しいファビコンをロードします。

ただし、別の潜在的な問題があります。アイコンを更新しようとしたサイトのサーバーには、/var/wwwDocumentRootがありました。このサイトはfoo.com/fubarにあり、var/www/fubarは他の場所にシンボリックリンクされていました。つまり、サイトはDocumentRootから1レベル下にあります。これはChrome、Opera、IEで機能しますが、SafariやFFでは機能しません。

<link rel="shortcut icon" href="/favicon.ico" >

FFは、/var/wwwではなく/var/www/fubarでファビコンを探します。これは5つのブラウザーすべてで機能します。

<link rel="shortcut icon" href="favicon.ico" >
2
EML