Ich habe kein favicon.ico, aber mein Browser fordert es immer an.
Ist es möglich, den Browser daran zu hindern, eine Anfrage nach dem Favicon von meiner Website zu stellen? Vielleicht mit einem META-TAG im HTML-Header?
Ich habe kein favicon.ico, aber mein Browser fordert es immer an.
Ist es möglich, den Browser daran zu hindern, eine Anfrage nach dem Favicon von meiner Website zu stellen? Vielleicht mit einem META-TAG im HTML-Header?
Zunächst möchte ich sagen, dass ein Favicon auf einer Webseite (normalerweise) eine gute Sache ist.
Dies ist jedoch nicht immer erwünscht, und manchmal brauchen die Entwickler eine Möglichkeit, die zusätzliche Nutzlast zu vermeiden. Zum Beispiel würde ein IFRAME ein Favicon anfordern, ohne es anzuzeigen. Schlimmer noch, in Chrome und Android generiert ein IFRAME 3 Anfragen für Favicons:
"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
Das folgende Beispiel verwendet Daten-URI und kann verwendet werden, um gefälschte Favicon-Anfragen zu vermeiden:
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
Für Referenzen siehe hier:
UPDATE 1:
Aus den Kommentaren (jpic) geht hervor, dass Firefox >= 25 die obige Syntax nicht mehr mag. Ich habe es mit Firefox 27 getestet und es funktioniert nicht, während es mit Webkit/Chrome noch funktioniert.
Hier ist also die neue Version, die alle aktuellen Browser abdecken sollte. Ich habe Safari, Chrome und Firefox getestet:
<link rel="icon" href="data:;base64,=">
Ich habe den "Shortcut"-Namen aus dem "rel"-Attributwert weggelassen, da dies nur für ältere IE-Versionen gilt und IE-Versionen < 8 ebenfalls keine dataURIs mögen. Nicht auf IE8 getestet.
UPDATE 2:
Wenn Sie Ihr Dokument gegen HTML5 validieren müssen, verwenden Sie stattdessen dies:
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
Hervorragend. Ich vermute, dass die Tatsache, dass Sie so wenige Stimmen bekommen haben, nur damit zu tun hat, dass mehrere Jahre vergangen sind, seit die Frage gestellt wurde, und weniger clevere Antworten mehr Zeit hatten, Stimmen zu sammeln.
Ihr UPDATE 2 hatte Probleme mit Lollipop...Hinzufügen <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
scheint das Problem zu lösen.
Wenn ich es richtig verstanden habe, kann ich die data:image/png;base64,iVBORw0KGgo=
im Browser, speichern Sie es als favicon.ico
alias. leere PNG-Datei und speichern Sie sie in Website Root. Richtig?
Fügen Sie einfach die folgende Zeile in die Datei <head>
Abschnitt Ihrer HTML-Datei:
<link rel="icon" href="data:,">
Merkmale dieser Lösung:
href="#"
)
Wenn Sie nur versuchen, Chrome Devtools für ein lokales Projekt zu schließen, ist dies bei weitem der einfachste und sauberste Weg, dies zu tun.
Bitte erläutern Sie dies. Muss ich dies einfach in meine HTML-Datei einfügen, um die Favicon-Anfrage zu stoppen?
@AakashVerma Ja, das ist alles. Es wird nichts anderes benötigt. (Es sei denn, Ihre Website muss Internet Explorer 8 oder älter unterstützen.) Ich habe meine Antwort entsprechend verbessert.
Ich glaube, ich habe das gesehen (Ich habe es allerdings nicht getestet oder persönlich benutzt) :
<link rel="shortcut icon" href="#" />
Hat jemand ähnliche Erfahrungen gemacht?
EDITAR:
Ich habe gerade das obige Snippet getestet und bei einer erzwungenen vollständigen Aktualisierung wurden keine Favicon-Anfragen in Fiddler gesehen. Ich testete gegen IE8 (Compat-Modus als IE7-Standards) und FF 3.6.
Meine Tests zeigen auch, dass dieser Trick funktioniert. Allerdings müsste ich die href
Link zu einer statischen (zwischengespeicherten) Ressource, die Sie bereits geladen haben (z. B. eine CSS- oder Skriptdatei) - um sicherzustellen, dass eine dynamische (nicht zwischengespeicherte) Seite nicht zweimal angefordert wird (nur zur Sicherheit, da href="#"
verweist technisch auf die aktuelle Webseite).
Das hilft nicht, wenn die Anfragen von außen kommen oder von einer Seite, die nicht unter der eigenen Kontrolle steht.
@rxgx - was meinen Sie? Zum Beispiel, wenn jemand das Favicon direkt anfordert? Oder meinen Sie, wenn die HTML-Quelle nicht bearbeitet werden kann?
Das können Sie nicht. Alles, was Sie tun können, ist, das Bild so klein wie möglich zu machen und einige Cache-Invalidierungs-Header zu setzen ( Expires
, Cache-Control
) weit in der Zukunft. Hier ist was Yahoo! zu sagen hat über favicon.ico-Anfragen.
Er sagte, er habe kein Favicon. Sie werden nicht viel kleiner als das. Und es macht keinen Sinn, nicht vorhandene Dateien zwischenzuspeichern.
Wenn er kein Favicon hat, sollte er eines erstellen, das war mein Punkt. Es gibt keine bessere Lösung als diese. Ist das nicht logisch? Wenn es keine Möglichkeit gibt, Anfragen zu stoppen, es sei denn, Sie verwenden Caching, was tun Sie?
Sie schalten es aus. Wenn Sie kein Favicon wollen und auch keine Fehleranfragen in Ihren Fehlerprotokollen haben wollen, dann sollten Sie es ausschalten. Warum ist das so schwer zu verstehen?
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
35 Stimmen
+1 Gute Frage, aber es scheint, dass die einfachste Lösung darin besteht, ein gültiges Favicon hinzuzufügen :-) Sicherlich ist das eine Sache von einer Minute und Ihre Website sieht sofort professioneller aus?
2 Stimmen
Ich mag diese Frage, möchten Sie vielleicht zu erforschen Kodierung einer base64 Favicon innerhalb Ihrer Seite (zugegeben, müssen Sie ein Symbol erste dann zu bekommen).
7 Stimmen
Sie können auch eine leere favicon.ico-Datei verwenden. Dadurch werden die Anfragen (nach der ersten) gestoppt, aber der Browser rendert nicht ein leeres Favicon, wo er normalerweise das Standardsymbol rendert.
60 Stimmen
Ich muss sagen, dass ich mit dem, was der Fragesteller andeutet, völlig einverstanden bin: Wozu sollte etwas extra gemacht werden obligatorisch ? und warum können wir nicht einfach einige Metadaten in die Antwort einfügen, die besagen: "Verhalte dich genau so, als ob du ein favicon.ico angefordert hättest und eine 404 erhalten hättest, nur dass du die Anforderung nicht wirklich stellst und nicht noch einmal nachfragst, bis sich diese Seite ändert".
0 Stimmen
Es gibt eine Reihe guter Antworten, aber ich denke, die beste Antwort sowie die Diskussion über Alternativen finden Sie auf dieser <a href=" stackoverflow.com/questions/5199902/ Überlauf Q&A</a>. Am besten schien es, das Bild in js mit base64 zu kodieren und den Favicon-Link mit einem Hash zu versehen - letzteres wurde oben vorgeschlagen. Es wurden auch ein paar andere Varianten vorgeschlagen.
67 Stimmen
Das ist so ärgerlich. Ich habe einen Webservice, der nur JSON dient und nicht einmal die grundlegende Fähigkeit hat, Dateien ohne einige Änderungen zu dienen (für einen Start, jede Methode erfordert ein Authentifizierungstoken, um ein 401/403 zu vermeiden). Ich protokolliere fehlgeschlagene Anfragen, damit ich sie später analysieren kann - die Protokolle werden ständig mit Anfragen nach einem Favicon überflutet.
3 Stimmen
Wie würden Sie das Hinzufügen einer favicon.ico-Datei zu Ihren REST-APIs rechtfertigen?
7 Stimmen
Wir schreiben das Jahr 2015. Gibt es Neuigkeiten dazu?
0 Stimmen
Danke, ich bin auf dieses Problem mit EpiServer 8 gestoßen. Der Navigationscode, der in einem Header-Teil geteilt wurde, wurde aufgrund der 404-Anfrage, die durch die fehlende favicon.ico verursacht wurde, zweimal ausgeführt. Die folgende Lösung funktionierte wie ein Champion.
0 Stimmen
Ich habe einen Mini-Webserver in einen Dienstprozess eingebaut, um die Operationen des Prozesses zu überprüfen. Jede URL enthält Code, um eine reine HTML-Seite zu erzeugen. Keine Skripte, keine Bilder, keine Icons, nur reines HTML. favicon.ico war eine böse Überraschung, als ich ein Formular-Tag mit einem Eingabe-Tag hinzugefügt habe. Vielen Dank für die Lösung.
2 Stimmen
Bitte beachten Sie, dass alle Webseiten (und die Kopfkonfiguration) nicht die einzigen potenziellen Verantwortlichen für diesen Favicon 403-Fehler sind. Wenn Sie zum Beispiel versuchen, direkt auf eine Website-Ressource zuzugreifen (z. B. beispiel.net/meine-website/bilder/logo.gif ), wird der Browser auch "favicon.ico" anfordern! (getestet mit Google Chrome), das macht mich verrückt für eine Weile ... hoffe, das hilft.
1 Stimmen
Dies ist eine berechtigte Frage, wenn Sie eine Seite mit sehr eingeschränkten CSP-Einstellungen erstellen müssen. Es ist absurd, eine Seite zu öffnen
img-src
oder Ihre Fehlerprotokolle zu spammen, nur um ein unnötiges Favicon zu haben0 Stimmen
Es wäre schön, eine akzeptierte Antwort zu haben. Ich fand die von @Diego-perini gut.
0 Stimmen
Ähnlich wie @Basic, habe ich kein HTML. Ich habe eine Flask-App, die nur JSON-Antworten zurückgibt und über einen Cloudflare-Tunnel läuft, der die App mit Gunicorn bedient. Ich möchte nicht, dass diese Anfragen überhaupt stattfinden und ich möchte kein Favicon. Ich bin ziemlich neu bei der Verwendung von Cloudflare, so dass ich davon ausgehe, es gibt eine Möglichkeit, die Anforderung zu blockieren, aber ich würde wirklich nur lieber haben die Anforderung nie gesendet werden. Gibt es einen Header, den ich setzen sollte, um dem Browser mitzuteilen, dass er die Anfrage gar nicht erst stellen soll?