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.
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" />
Ok, nach 10 Minuten ist der einfache Weg, es zu reparieren, dem von lineofbirds sehr ähnlich
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:
Dies ist der einfachste Weg, das Favicon lokal zu aktualisieren.
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" />
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') ?>" />
Durch das Zerstören der Datei, die Ihr Browser zum Speichern alter Favoriten verwendet, können Sie das Laden neuer Dateien erzwingen.
chrome.exe
oder firefox.exe
).Favicons
und Favicons-journal
.favicons.sqlite
entfernenDas wird fast definitiv funktionieren. Wenn nicht:
In Chrome unter Mac OS X können Dateien mit dem Favicon-Cache entfernt werden
${user.home}/Library/Application Support/Google/Chrome/Default/Favicons
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:
Wenn diese Sequenz nicht funktioniert, dann passiert etwas anderes.
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.
ON MAC: ⌘ + Shift-R oder gedrückt halten Ctrl und klicken Sie im Browser auf die Schaltfläche "Neu laden".
Für Internet Explorer gibt es eine andere Lösung:
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.
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:
<link>
-Tagmysite.com/favicon.ico
mysite.com
in einem neuen Tab öffnen(Bis zu Schritt 3 wurde durch Aktualisieren auf derselben Registerkarte das alte Symbol reproduziert.)
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:
sqlite3 ~/Library/Application\ Support/Google/Chrome/Default/Favicons
select * from favicons where url = 'http://mysite.dev/favicon.ico';
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:
select * from favicons where url like 'http://mysite.dev%';
delete from favicons where url like 'http://mysite.dev%';
.exit
ein und drücken Sie zur Rückkehr zum Beenden von sqliteWenn 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.
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 .
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 .
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
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.
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
Chrome-Version: 68.0.3440.106
Starten Sie einfach Chrome neu (in Ihrer Adressleiste): chrome://restart
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
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.
Lassen Sie alle Ihre Kunden Firefox deinstallieren. Dann erneut installieren.
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.
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
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.
Ändern Sie einfach diesen Dateinamen = 'favicon1.ico'
Wenn das Problem trotz der oben beschriebenen Schritte weiterhin besteht, versuchen Sie, den IIS Server neu zu starten. Ich hoffe, dies hilft ...
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)
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: