web-dev-qa-db-de.com

Wie erzwinge ich eine Aktualisierung des Favicons?

Ich habe eine Grails-Anwendung, die lokal mit einem eigenen Tomcat ausgeführt wird, und ich habe gerade das Favicon durch ein neues ersetzt. Das Problem ist, dass ich es in keinem Browser sehen kann. Das alte Favicon erscheint oder ich bekomme überhaupt kein Favicon, aber nicht mein neues. Ich denke nicht, dass dies ein Grails-Problem ist, eher ein Problem mit den Favicons.

Was soll mit den Favicons passieren? Wie sollen sie arbeiten? Ich habe in meinem Browser zahlreiche Lesezeichen, die die falschen Symbole haben, und sie scheinen nie aktualisiert zu werden. Wie zwinge ich den Server/Browser, die Zwischenspeicherung einzustellen? Es scheint ziemlich dumm zu sein, sie immer zu cachen, da sie normalerweise nur 16x16 sind. Warum laden Sie sie nicht bei jedem Besuch der Seite hoch? Es ist nicht gerade ein großer Aufwand.

1445
Simon

Um das Favicon Ihrer Site zu aktualisieren, können Sie den Browser dazu zwingen, eine neue Version mithilfe des Link-Tags und einer Abfragenummer Ihres Dateinamens herunterzuladen. Dies ist besonders in Produktionsumgebungen hilfreich, um sicherzustellen, dass die Benutzer das Update erhalten. 

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

Ok, nach 10 Minuten ist der einfache Weg, es zu reparieren, dem von lineofbirds sehr ähnlich

  1. Geben Sie www.yoursite.com/favicon.ico (oder www.yoursite.com/Apple-touch-icon.png usw.) ein.
  2. Drücken enter
  3. ctrl+f5
  4. Browser neu starten (IE, Firefox)
803
alex

Diese Antwort wurde noch nicht gegeben, also dachte ich, ich würde sie posten. Ich habe im Web nachgesehen und keine gute Antwort gefunden, um die Favicons in der lokalen Entwicklung zu testen. 

Wenn Sie in der aktuellen Version von Chrome (unter OSX) Folgendes tun, erhalten Sie eine sofortige Aktualisierung des Favicons:

  1. Bewegen Sie den Mauszeiger über die Registerkarte
  2. Rechtsklick
  3. Wählen Sie neu laden
  4. Ihr Favicon sollte jetzt aktualisiert werden

Dies ist der einfachste Weg, das Favicon lokal zu aktualisieren. 

252
Garry Polley

Benennen Sie die Favicon-Datei um und fügen Sie einen HTML-Header mit dem neuen Namen hinzu, z.

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

Wenn Sie PHP verwenden, können Sie auch den MD5-Hash des Favicons als Abfragezeichenfolge verwenden:

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

Auf diese Weise wird das Favicon immer aktualisiert, wenn es geändert wurde.

Wie in den Kommentaren dargelegt, können Sie anstelle des MD5-Hash auch das letzte Änderungsdatum verwenden, um dasselbe zu erreichen und die Serverleistung zu reduzieren:

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

Durch das Zerstören der Datei, die Ihr Browser zum Speichern alter Favoriten verwendet, können Sie das Laden neuer Dateien erzwingen.

  1. Schließen Sie Ihren Browser. Stellen Sie sicher, dass keine Browserprozesse mehr ausgeführt werden (prüfen Sie beispielsweise den Task-Manager auf chrome.exe oder firefox.exe).
  2. Navigieren Sie zu dem Ort, an dem Ihr Browser Benutzerdateien speichert:
  3. Löschen Sie den Favicon-Cache .
    • Entfernen Sie für Chrome Favicons und Favicons-journal.
    • Für Firefox favicons.sqlite entfernen

Das wird fast definitiv funktionieren. Wenn nicht:

  • Möglichkeit 1: Durch ein Update Ihres Browsers wurde die Funktionsweise des Favicon-Caches geändert. Bearbeiten Sie diese Antwort bitte mit neuen Anweisungen.
  • Möglichkeit 2: Ihr Favicon-Problem hat nichts mit übertriebenem Caching zu tun. Stattdessen kann es ein Problem beim Laden von Ressourcen sein. Stellen Sie mithilfe der Entwicklertools sicher, dass das neue Favicon ordnungsgemäß heruntergeladen wird.
48
konzo

In Chrome unter Mac OS X können Dateien mit dem Favicon-Cache entfernt werden 

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

Nun, Overhead ist Overhead, aber ja, nicht zu groß.

Browser sind manchmal auch "gierig" wegen zwischengespeicherter Dateien. Sie könnten den Cache leeren und/oder Ihren Browser neu starten und die Änderung sehen. Wenn das nicht klappt ...

Meine billige Lösung ist:

  1. Besuchen Sie Ihre Datei unter http://example.com/favicon.ico in Ihrem Browser.
  2. Löschen Sie das favicon.ico von Ihrer Webroot.
  3. Besuchen Sie http://example.com/favicon.ico noch einmal in einem Browser. Vergewissern Sie sich, dass er fehlt.
  4. Laden Sie ein neues auf Ihre Webroot hoch.
  5. Besuchen Sie http://example.com/favicon.ico noch einmal in einem Browser. Vergewissern Sie sich, dass es der neue ist.

Wenn diese Sequenz nicht funktioniert, dann passiert etwas anderes.

16
artlung

Abhängig vom Browser werden sie unterschiedlich gehandhabt, aber normalerweise gehe ich zur Standardseite der Site und aktualisiere sie hart. CTRL + F5, wird es normalerweise aktualisieren.

14
Mitchel Sellers

ON MAC:  + Shift-R oder gedrückt halten Ctrl und klicken Sie im Browser auf die Schaltfläche "Neu laden".

10
badmadrad

Für Internet Explorer gibt es eine andere Lösung:

  1. Öffnen Sie den Internet Explorer.
  2. Klicken Sie auf Menü> Extras> Internetoptionen.
  3. Klicken Sie auf Allgemein> Temporäre Internetdateien> Schaltfläche "Einstellungen".
  4. Klicken Sie auf die Schaltfläche "Dateien anzeigen".
  5. Finden Sie Ihre alte favicon.ico-Datei und löschen Sie sie.
  6. Browser neu starten (Internet Explorer).
9
nam

Wahrscheinlich ein Webbrowser-Problem. Sie müssen Ihren Cache von Ihrem Browser löschen, Ihren Browser schließen und ihn erneut öffnen. Das sollte es beheben.

Ich glaube nicht, dass Ihre Favoriten Ihre Favoriten aktualisieren werden, bis Sie diese Seite erneut besuchen und davon ausgehen, dass Sie zuvor den Cache Ihres Browsers geleert haben.

Ihr Webbrowser geht nicht ins Internet, um selbst nach einem neuen Favicon zu suchen ... Gott sei Dank.

9
Senica Gonzalez

Versuchen Sie es in einem neuen Tab zu öffnen

Ich habe viele der oben genannten Dinge ausprobiert (Cache zurücksetzen, aktualisieren, Link-Tag verwenden usw.). Ich habe sogar meine .htaccess-Datei überprüft und die Variable ExpiresByType zurückgesetzt.

In Chrome (25.0.x) und Safari (6.0.1) funktionierte dies schließlich für mich:

  1. Cache leeren
  2. Verknüpfen des Favicons mit dem <link>-Tag
  3. Navigieren zu mysite.com/favicon.ico
  4. mysite.com in einem neuen Tab öffnen

(Bis zu Schritt 3 wurde durch Aktualisieren auf derselben Registerkarte das alte Symbol reproduziert.)

7
Old McStopher

Wenn Sie unter Chrome unter macOS nicht die gesamte Chrome-Favicon-Datenbank löschen möchten, wie hier bereits vorgeschlagen, können Sie nur die in Konflikt stehenden Symbole löschen:

  1. Beenden Sie Chrome
  2. Laden Sie die Favicons-Datenbank (hier mit sqlite):

sqlite3 ~/Library/Application\ Support/Google/Chrome/Default/Favicons

  1. Suchen Sie nach der Datei, die Probleme verursacht

select * from favicons where url = 'http://mysite.dev/favicon.ico';

  1. Wenn Sie mit der Ausgabe zufrieden sind:

delete from favicons where url = 'http://mysite.dev/favicon.ico';


Alternativ können Sie nach einem Muster suchen, das Sie zum Löschen mehrerer Einträge wiederverwenden können:


  1. Suchen Sie nach mehreren Dateien , die Probleme verursachen

select * from favicons where url like 'http://mysite.dev%';

  1. Und wenn Sie mit dem Ergebnis zufrieden sind:

delete from favicons where url like 'http://mysite.dev%';


  1. Geben Sie .exit ein und drücken Sie zur Rückkehr zum Beenden von sqlite
  2. Starten Sie Chrome neu
7
MrUpsidown

Wenn Sie das Favicon von Google anfordern, können Sie sich die Antwortheader ansehen.

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

Wenn Sie der Antwort einen "Expires:" -Header hinzufügen, fordert das Client-Browser das Symbol nach diesem Zeitstempel erneut an. Während der aktiven Entwicklung können Sie den Ablaufstempel für die Ablaufzeit auf ein oder zwei Sekunden in der Zukunft festlegen und ihn immer abrufen, obwohl dies ein schlechter langfristiger Plan ist.

6
Dean J

Chrome's Favicon-Unterstützung ist fehlerhaft - ignorieren Sie diese Antwort

Ich schrieb diese Antwort unter dem Eindruck, dass dies zur Aktualisierung der Favoriten in Google Chrome erforderlich war. Es stellt sich jedoch heraus, dass dies nur für die ersten fünf Minuten funktioniert, bis das Symbol unwiederbringlich in der Verlaufs-Synchronisierung von Chrome verloren geht .

Ursprüngliche Antwort

Sie müssen den Cache nicht leeren, Ihren Browser nicht neu starten, oder Ihren HTML-Code nicht umschreiben. Sie müssen lediglich die URL des Symbols einmal ändern, damit der Browser das zuvor zwischengespeicherte Symbol vergisst.

Vorausgesetzt, Sie haben Ihr Symbol über <link>-Elemente in <head> Ihrer Seite definiert, können Sie dies tun, indem Sie den standard-JS-Einzeiler in der Konsole ausführen:

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

Eine fortgeschrittenere Implementierung, die dies automatisch für Endbenutzer in der Produktion tun kann, finden Sie unter freshicon.js .

5

Ich habe kürzlich meine Lesezeichen wiederhergestellt und suchte nach einer Möglichkeit, die FavIcons wiederherzustellen, ohne jede Seite zu besuchen. Meine Suche brachte mich zu diesem Thread. 

Laden Sie unter ähnlichen Umständen lediglich das Addon FAVICON RELOADER herunter. Nach der Installation finden Sie den Befehl "Favoriten-Symbole neu laden" im Dropdown-Menü BOOKMARKS.

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

4
bgc

Wenn Sie PHP .. verwenden, können Sie auch diese Zeile verwenden.

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

Es wird Ihr Favicon auf jeder Seite neu laden.

4
Shakeel Ahmed

Wenn Sie nur an einem Debugging interessiert sind, um sicherzustellen, dass es geändert wurde, können Sie der Datei/etc/hosts einen Dummy-Eintrag hinzufügen und die neue URL anklicken. Das Favicon wird nicht bereits zwischengespeichert und Sie können sicherstellen, dass das neue funktioniert.

Wenn Sie den Namen des Favicons nicht ändern, können Sie Ihre Benutzer nicht zwingen, eine neue Kopie zu erhalten

3
cpjolicoeur

Chrome-Version: 68.0.3440.106

Starten Sie einfach Chrome neu (in Ihrer Adressleiste): chrome://restart 

2
Lowryder

Dies funktioniert für Chrome:

  • auf dem Mac: Datei löschen

    $ {user.home}/Library/Anwendungssupport/Google/Chrome/Default/Favicons

  • unter Windows: Dateien löschen

    C:\Benutzer [Benutzername]\AppData\Local\Google\Chrome\Benutzerdaten\Default\Favicons C:\Benutzer [Benutzername]\AppData\Local\Google\Chrome\Benutzerdaten\Standard\Favicons-journal

Quelle

2

Ich weiß, dass dies eine wirklich alte Frage ist, aber auch eine, die immer noch relevant ist, obwohl diese Tage nur für Mozilla gelten. (Ich habe keine Ahnung, was der Explorer macht, wenn wir nicht für Standard-Browser codieren).

Chrome verhält sich gut, wenn in der Kopfzeile ein Symbol-Tag enthalten ist.

Obwohl Mozilla sich des Problems durchaus bewusst ist, reparieren sie niemals das lästige kleine Zeug. Sogar 6 Jahre später.

Es gibt also zwei Möglichkeiten, eine Symbolaktualisierung mit Firefox zu erzwingen.

  1. Lassen Sie alle Ihre Kunden Firefox deinstallieren. Dann erneut installieren.

  2. Geben Sie manuell nur die Domäne in die URL-Leiste ein. Verwenden Sie nicht http oder w .w , Sondern nur die Domäne (meinedomäne.com).

Dies setzt natürlich voraus, dass Ihre ns-Datensätze nur die Auflösung des Domänennamens enthalten.

1
rockmo

Stellen Sie außerdem sicher, dass Sie die vollständige Bild-URL und nicht nur den relativen Pfad angeben:

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

Und nicht: 

images/favicon.ico
1
Amr Elgarhy

Dies ist eine Problemumgehung für den Chrome-Fehler: Ändern Sie das Attribut rel in Stylesheet! Behalten Sie jedoch den ursprünglichen Link. Klappt wunderbar:

Ich bin zu dieser Problemumgehung gekommen, weil wir auch die Anforderung haben, die Standorte/Produktionscodes der Kunden zu aktualisieren, und ich habe keine andere Lösung gefunden, die funktioniert.

1
user1427015

Ändern Sie einfach diesen Dateinamen = 'favicon1.ico'

0
Armin Alibasic

Wenn das Problem trotz der oben beschriebenen Schritte weiterhin besteht, versuchen Sie, den IIS Server neu zu starten. Ich hoffe, dies hilft ...

0
Murat Yıldız

Einfach,

1: Ich möchte nicht mit Codes herumspielen (ps mein Site-Builder verwendet keine Codes, er verwendet die Schaltfläche "Datei hochladen" und er tut es selbst)

2: Ich habe das ausprobiert CTRL+F5 und es funktioniert bei mir nicht so ....

ICH HABE EINE LÖSUNG:

IE: Löschen Sie den gesamten Browserverlauf und alle Cookies, indem Sie zu den Einstellungen unter Zahn O gehen

Chrome: Gehen Sie in das Menü in der oberen rechten Ecke unter dem X, das wie ein = aussieht, und gehen Sie dann zu Einstellungen, Verlauf, DATEN LÖSCHEN und aktivieren Sie alle zutreffenden Kontrollkästchen (ich habe Verlauf, Cookies und leere die Kiste aus dem Anfang der Zeit)

0
Robert

So habe ich es mit einem einfach animierten Favicon und FireFox 3.6.13 (Betaversion) geschafft. Es wird wahrscheinlich auch für andere Versionen von FireFox funktionieren, lass es mich wissen, wenn es nicht .. ist auch die .gif-Datei:

  1. Ich habe per FTP-Programm geöffnet, meine Dateien favicon.ico UND favicon.gif heruntergeladen, 
  2. löschte sie dann aus den Dateien meines Servers.
  3. Dann öffnete ich sie in meinem Browser wie von artlung vorgeschlagen: http://mysite.com/favicon.ico AND http://mysite.com/favicon.gif Sobald diese Adressen geladen wurden und angezeigte 404-Fehlerseiten ("Seite nicht gefunden")
  4. Ich habe dann beide Dateien wieder auf meinen Server hochgeladen und PRESTO - die richtigen Symbole wurden sofort angezeigt.
0
lineofbirds