713

私は favicon.ico を持っていませんが、ブラウザは常に favicon.ico をリクエストします。

ブラウザが自分のサイトからファビコンをリクエストしないようにすることはできますか? HTMLヘッダーのMETA-TAGでしょうか?

4

17 に答える 17

693

最初に、Web ページに favicon があることは (通常は) 良いことです。

ただし、常に望ましいとは限りません。開発者は、余分なペイロードを回避する方法が必要になる場合があります。たとえば、IFRAME はファビコンを表示せずにリクエストします。さらに悪いことに、Chrome と Android では、IFRAME がファビコンの 3 つの要求を生成します。

"GET /favicon.ico HTTP/1.1" 404 183
"GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 197
"GET /apple-touch-icon.png HTTP/1.1" 404 189

以下はデータ URI を使用しており、偽のファビコン リクエストを回避するために使用できます。

<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon"> 

参照については、ここを参照してください。

更新 1:

コメント (jpic) から、Firefox >= 25 は上記の構文を好まないようです。Firefox 27 でテストしましたが、Webkit/Chrome では動作しますが動作しません。

したがって、最近のすべてのブラウザーをカバーする新しいものを次に示します。Safari、Chrome、および Firefox をテストしました。

<link rel="icon" href="data:;base64,=">

「rel」属性値から「ショートカット」名を省略しました。これは、古い IE のみであり、IE 8 未満のバージョンも dataURI を好まないためです。IE8 ではテストされていません。

更新 2:

ドキュメントを HTML5 に対して検証する必要がある場合は、代わりにこれを使用します。

<link rel="icon" href="data:;base64,iVBORw0KGgo=">
于 2012-11-16T12:41:07.487 に答える
210

<head>HTML ファイルのセクションに次の行を追加するだけです。

<link rel="icon" href="data:,">

このソリューションの特徴:

  • 100% 有効な HTML5
  • 非常に短い
  • IE 8以前からの癖はありません
  • ブラウザに現在の HTML コードを favicon として解釈させません (これは の場合ですhref="#") 。
于 2016-08-12T12:22:04.020 に答える
58

私はこれを見たことがあると信じています(私はそれをテストしたり、個人的に使用したりしていませんが):

<link rel="shortcut icon" href="#" />

似たような経験をした人はいますか?

編集:

上記のスニペットをテストしたところ、強制的に完全に更新されたときに、Fiddler にファビコン リクエストが表示されませんでした。IE8 (IE7 標準としての互換モード) と FF 3.6 に対してテストしました。

于 2011-01-14T14:16:21.503 に答える
38

できません。できることは、その画像をできるだけ小さくして、キャッシュ無効化ヘッダー ( ExpiresCache-Control) をはるか先に設定することだけです。Yahoo! _ favicon.ico リクエストについて言わなければなりません。

于 2009-08-24T11:39:20.873 に答える
6

.htaccess またはサーバー ディレクティブを使用して favicon.ico へのアクセスを拒否できますが、サーバーはアクセス拒否の応答をブラウザーに送信するため、ページ アクセスが遅くなります。

ユーザーがサイトに戻ったときに favicon.ico を要求するブラウザーを停止するには、ブラウザーのキャッシュに favicon.ico を保持するようにします。

最初に、小さな favicon.ico 画像を提供します。空白でもかまいませんが、できるだけ小さくします。200バイト以下の白黒のものを作りました。次に、.htaccess またはサーバー ディレクティブを使用して、ファイルの Expires ヘッダーを 1 ~ 2 か月後に設定します。同じユーザーがサイトに戻ってくると、ブラウザーのキャッシュから読み込まれ、サイトにリクエストが送信されなくなります。サーバーログにも 404 はありません。

完全なApacheサーバーまたはおそらく仮想サーバーを制御できる場合は、これを行うことができます:-

サーバー ドキュメント ルートが /var/www/html の場合、これを /etc/httpd/conf/httpd.conf に追加します。

Alias /favicon.ico "/var/www/html/favicon.ico"
<Directory "/var/www/html">
    <Files favicon.ico>
       ExpiresActive On
       ExpiresDefault "access plus 1 month"
    </Files>
</Directory>

次に、単一の favicon.ico が、エイリアスを設定しているため、すべての仮想ホスト サイトで機能します。ユーザーがアクセスしてから 1 か月間、ブラウザーのキャッシュから取得されます。

.htaccess の場合、これは動作することが報告されています (私はチェックしていません):-

AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"
于 2011-07-09T19:12:49.933 に答える
0

私たちの経験では、favicon.ico の要求に応じて Apache が失敗したため、.htaccess ファイルの余分なヘッダーをコメントアウトしました。

たとえば、ヘッダー セット X-XSS-Protection "1; mode=block" がありました。

...しかし、事前に a2enmod ヘッダーを sudo するのを忘れていました。送信される余分なヘッダーをコメントアウトすると、favicon.ico の問題が解決しました。

また、開発用にいくつかの仮想ホストをセットアップしましたが、http://localhostを使用して/favicon.ico を取得したときに 500 Internal Server Error で失敗しただけでした。「curl -v http://localhost/favicon.ico」を実行して、ホスト名がリゾルバー キャッシュにない、またはその影響に関する警告が表示される場合、問題が発生する可能性があります。

フェッチしないという単純な場合もあれば (根本的な原因が異なっていたため、それを試してみましたがうまくいきませんでした)、apache2.conf または .htaccess 内のディレクティブを調べて、奇妙な 500 Internal Server Error メッセージを表示させている可能性もあります。

mod_headers をロードするのを忘れたときに余分なヘッダーを設定するという問題を解決するまで、あちこちで小さなことを変更するのに午前中を費やしました。

于 2016-08-01T04:19:43.740 に答える
0

HTML にコメント付きのコードがあり、ブラウザが何かを検索しようとすると、このエラーが発生することがあります。私の場合のように、フラスコの Web フォームのコードにコメントを付けていたので、これを取得していました。

2時間を費やした後、次の方法で修正しました。

1) 新しい python 環境を作成したところ、コメント付きの HTML 行でエラーがスローされました。この前に、エラー 'GET /favicon.ico HTTP/1.1" 404' のみがスローされました。

2)同じ名前のpythonファイルが存在するなど、重複したコードがある場合、このエラーが表示された場合は、それらも削除してみてください

于 2019-06-26T18:50:07.950 に答える
-1

HTML を使用しておらず、Flask または一部のフレームワークによって自動生成されている場合は、いつでもアプリにダミー ルートを追加して、ダミー テキストを返すだけでこの問題を解決できます。

または 。. . ファビコンを追加するだけです:)

たとえば、Python Flask アプリケーションの場合。

@app.route('/favicon.ico')
def favicon():
    return 'dummy', 200
于 2021-10-24T20:45:10.187 に答える
-15

あなたが使用することができます

<link rel="shortcut icon" href="http://localhost/" />

そうすれば、サーバーから実際に要求されることはありません。

于 2012-01-30T19:31:22.973 に答える