ファビコンが表示されず、「ページが見つかりません」というエラーが発生することがあるのはなぜですか。


8

質問が暗示するように、時々Drupalのログはファビコンが見つからないことを示しています。実際、ブラウザのタブやアドレスバーには表示されません。他の場合には、同じサーフィンセッション内であっても表示されます。

なぜこれを行うのですか、どうすればファビコンが常に表示されるように防ぐことができますか?

私はバージョンDrupal 7.22を使用しています。カスタムサブテーマと管理テーマ(スターク)。

私のファビコンは、sites / default / files / images / favicon.icoのサブテーマのテーマ設定で設定されており、FTP経由で確認したようにそこにあります。

ログは、ブラウザがexample.com/favicon.icoを探していることを示しています。

私が使用するカスタムサブ<link rel="shortcut icon" href="http://example.com/sites/default/files/images/favicon.ico"; type="image/vnd.microsoft.icon" />テーマはソースコードと管理テーマ(Stark)で使用されて<link type="image/vnd.microsoft.icon" href="http://example.com/misc/favicon.ico"; rel="shortcut icon">おり、このファイルはその場所にも存在します(もちろん、実際にはexample.comを使用していません)。

DrupalはクリーンなURLを使用しています。

WebサーバーはDebian Linux上のApacheです。

ありがとうございました。


これらのエラーのリファラーを提供する場合に役立つ可能性があり、ログに記録する必要があります。
Mołot

@Molotリファラーフィールドが空白であるか、ログでチェックしたすべてのケースでサイト内の別のページです。
authentictech

ログメッセージを編集して、パス、使用しているWebサーバー、およびmod_rewriteが機能するかどうか(つまり、クリーンなURL)を表示できますか?
mpdonadio

回答:


4

一部のブラウザは、http: //example.com/favicon.icoでファビコンをチェックせずに検索します。しかし、彼らは現在少数派です。

ほとんどの尊敬:

<link rel="icon" href="http://example.com/img/icon.png">

W3Cで説明されているように

サイト<link>がアプローチを使用しようとしたが、別のテンプレートを使用してレンダリングされた管理ページなどの一部のページで失敗し、デフォルトの場所にfavicon.icoがない場合、正確に説明された効果が得られます。

あなたが適切なときにブラウザがhttp://example.com/favicon.icoを探している場合 <link rel="shortcut icon">、それはブラウザの問題であり、あなたの問題ではありません。これは、ブラウザー(または少なくともそのコードの一部)が古くなっていることを意味します。最初に正しいURIで調べて別のエラーが発生しない限り、ログに2つのエラーが表示されます。Mozillaのキューには、FireFoxによるファビコンの不適切な検出に関する多数のレポートがあります。この例ではそれは、現代のブラウザでさえ、時々古い方法にフォールバックできることを示しています。


はい、ログはブラウザがexample.com/favicon.icoを探していることを示しています。サイトで使用するカスタムサブテーマで<link rel = "shortcut icon" href = " example.com/sites/default/files/images/favicon.ico " type = "image / vnd.microsoft.icon" />が表示される正しい場所であるソースコード(実際にはexample.comではありません)。オーバーレイをオフにすると、管理テーマは<link type = "image / vnd.microsoft.icon" href = " example.com/misc/favicon.ico " rel = "shortcut icon">を使用しており、このファイルも存在しますその場所に。
authentictech

すべてが正しいはずです。これはブラウザの問題ですか、それともウェブサイトの問題ですか?どこで修正しますか?ありがとう。
authentictech

@authentictechブラウザーがexample.com/favicon.icoを探している場合、適切な<link rel="shortcut icon">場合はブラウザーの問題であり、ユーザーの問題ではありません。これは、最初に正しい場所を調べて別のエラーが発生しない限り、ブラウザが古いことを意味しますが、このエラーの直前のログに表示されます。質問を更新します。
Mołot

1
@MPD Apacheによって提供されない場合があります。パンテオンのnginx構成では、たとえばそのルールが省略されています(私が正しく覚えている場合)
Clive

2
@authentictech Firefoxには、ファビコンの不適切な処理に関する多数の未解決のバグレポートがあります。同様に、この1例。そのコードの一部は古く、悲しいが本当です。あなたがそれを処理したい場合は、あなたの.htaccessにリライトを追加することができますが、それはされます、サイトのバグを修正ません、ブラウザのバグを回避ハッキングします。
Mołot

2

この問題をすばやく簡単に修正するには、Redirectモジュールを使用してリダイレクトします。

モジュールを有効にしたら、fromとto に移動しadmin/config/search/redirect/addて使用favicon.icoし、テーマの実際の場所にする必要がありますfavicon.ico


このファイルは.htaccessによって自動的に処理されるため、リクエストがDrupalに送信されてRedirectモジュールが処理することはありません。
Vincent

1
はい、Drupalに到達しました。それ以外の場合、どのようにしてDrupalログに記録されますか?私はこのアプローチを本番環境で成功裏に使用しました。
cdmo

1
あなたは正しい、私はこれをテストした。元の回答を編集して、反対投票を反対投票に切り替えられるようにしました。
Vincent

0

Apacheを使用している場合、それを修正するために私が見つけた最良の方法は、

<Location /favicon.ico>
  ErrorDocument 404 "No favicon"
</Location>

このコードは、vhostファイルで機能するか、.htaccessファイルでも機能するはずです。詳細については、http://httpd.apache.org/docs/2.4/sections.htmlを参照してください


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.