web-dev-qa-db-fra.com

Comment forcer une actualisation de favicon?

J'ai une application Grails s'exécutant localement avec son propre Tomcat et je viens de changer le favicon pour un nouveau. Le problème est que je ne peux le voir dans aucun navigateur. L'ancien favicon apparaît ou je ne reçois aucun favicon, mais pas le nouveau. Je ne pense pas que ce soit un problème Grails en soi, mais plutôt un problème avec des favicons.

Qu'est-ce qui est censé se passer avec les favicons? Comment sont-ils censés travailler? Dans mon navigateur, de nombreux signets portent les mauvaises icônes et ne semblent jamais se rafraîchir. Comment forcer le serveur/navigateur à cesser de les mettre en cache? Il semble assez ridicule de toujours les cacher, sachant qu’ils n’ont normalement que 16x16 pixels. Pourquoi ne pas simplement les télécharger à chaque visite sur la page? Ce n'est pas exactement une surcharge énorme.

1445
Simon

Pour actualiser l'icône de votre site, vous pouvez obliger les navigateurs à télécharger une nouvelle version à l'aide de la balise link et d'une chaîne de requête sur votre nom de fichier. Cela est particulièrement utile dans les environnements de production pour vous assurer que vos utilisateurs reçoivent la mise à jour. 

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

Ok, après 10 minutes de wtf'ing, le moyen facile de le réparer est proche de celui de lineofbirds

  1. Entrez www.yoursite.com/favicon.ico (ou www.yoursite.com/Apple-touch-icon.png, etc.)
  2. Pousser enter
  3. ctrl+f5
  4. Redémarrer le navigateur (IE, Firefox)
803
alex

Cette réponse n'a pas encore été donnée, alors j'ai pensé la poster. J'ai parcouru le Web et je n'ai pas trouvé de bonne solution pour tester les favicons dans le développement local. 

Dans la version actuelle de chrome (sur OSX), si vous procédez comme suit, vous obtiendrez une actualisation instantanée des favicon:

  1. Survolez l'onglet
  2. Clic-droit
  3. Sélectionnez recharger
  4. Votre favicon devrait maintenant être rafraîchi

C’est le moyen le plus simple que j’ai trouvé d’actualiser localement le favicon. 

252
Garry Polley

Renommez le fichier favicon et ajoutez un en-tête HTML avec le nouveau nom, tel que:

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

Si vous utilisez PHP, vous pouvez également utiliser le hachage MD5 du favicon comme chaîne de requête:

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

De cette façon, le Favicon sera toujours actualisé lorsqu'il aura été modifié.

Comme indiqué dans les commentaires, vous pouvez également utiliser la dernière date de modification au lieu du hachage MD5 pour obtenir le même résultat et économiser un peu sur les performances du serveur:

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

En détruisant le fichier utilisé par votre navigateur pour stocker les anciennes favicons, vous pouvez forcer le chargement de nouvelles.

  1. Fermez votre navigateur. Assurez-vous qu'il n'y a plus de processus de navigateur en cours d'exécution (par exemple, consultez le Gestionnaire des tâches pour obtenir chrome.exe ou firefox.exe).
  2. Accédez à l’endroit où votre navigateur stocke les fichiers de l’utilisateur:
    • Pour Chrome, accédez au répertoire de données Chrome .
    • Pour Firefox, accédez au dossier de profil Firefox .
  3. Supprimer le cache favicon .
    • Pour Chrome, supprimez Favicons et Favicons-journal
    • Pour Firefox, supprimez favicons.sqlite

Cela fonctionnera presque certainement. Si non:

  • Possibilité 1: une mise à jour de votre navigateur a modifié le fonctionnement du cache favicon. Veuillez éditer cette réponse avec de nouvelles instructions.
  • Possibilité 2: Votre problème de favicon n'a rien à voir avec la mise en cache trop agressive. Il peut s'agir plutôt d'un problème de chargement de ressources: à l'aide des outils de développement, assurez-vous que le nouvel favicon est en cours de téléchargement.
48
konzo

Dans Chrome sur Mac OS X, on peut supprimer un fichier avec le cache favicon 

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

Bien, les frais généraux sont les frais généraux, mais oui, pas trop gros.

En outre, les navigateurs sont parfois "gourmands" à propos des fichiers en cache. Vous pouvez vider le cache et/ou redémarrer votre navigateur et voir les modifications. Si cela échoue cependant ...

Ma solution cheapo est de:

  1. Visitez votre fichier à l’adresse http://example.com/favicon.ico dans votre navigateur.
  2. Supprimez le favicon.ico de votre racine Web.
  3. Rendez-vous sur http://example.com/favicon.ico dans un navigateur, vérifiez qu'il est manquant.
  4. Importez-en un nouveau sur votre racine Web.
  5. Visitez http://example.com/favicon.ico à nouveau dans un navigateur, vérifiez qu'il s'agit bien du nouveau.

Si cette séquence ne fonctionne pas, il se passe autre chose.

16
artlung

En fonction du navigateur, elles sont traitées différemment, mais je trouve généralement que cela va à la page par défaut du site, et effectue une actualisation physique. CTRL + F5, le fera généralement mettre à jour.

14
Mitchel Sellers

SUR MAC:  + Shift-R ou maintenez Ctrl et cliquez sur le bouton de rechargement dans le navigateur.

10
badmadrad

Pour Internet Explorer, il existe une autre solution:

  1. Ouvrez Internet Explorer.
  2. Cliquez sur menu> outils> options internet.
  3. Cliquez sur Général> Fichiers Internet temporaires> Bouton "Paramètres".
  4. Cliquez sur le bouton "Voir les fichiers".
  5. Recherchez votre ancien fichier favicon.ico et supprimez-le.
  6. Redémarrez le navigateur (Internet Explorer).
9
nam

Plus que probablement un problème de navigateur Web. Vous devrez supprimer votre cache de votre navigateur, le fermer et le rouvrir. Cela devrait résoudre le problème.

Je ne crois pas que vos favoris se rafraîchiront dans vos favoris jusqu'à ce que vous reveniez sur cette page, en supposant que vous ayez préalablement vidé la mémoire cache de votre navigateur.

Votre navigateur Web n'ira pas sur Internet pour rechercher lui-même un nouveau favicon ... Dieu merci.

9
Senica Gonzalez

Essayez d'ouvrir dans un nouvel onglet

J'ai essayé beaucoup des choses ci-dessus (réinitialisation du cache, actualisation, utilisation de la balise link, etc.), j'ai même vérifié mon fichier .htaccess et réinitialisé la variable ExpiresByType.

Mais c’est ce qui a finalement fonctionné pour moi dans Chrome (25.0.x) et Safari (6.0.1):

  1. Cache de chasse
  2. Lier durement le favicon à la balise <link>
  3. Navigation vers mysite.com/favicon.ico
  4. Ouvrir mysite.com dans un nouvel onglet

(Jusqu'à l'étape 3, l'actualisation dans le même onglet continuait à reproduire l'ancienne icône.)

7
Old McStopher

Pour Chrome sous macOS, si vous ne souhaitez pas supprimer la totalité de la base de données Google Favicon comme suggéré précédemment, vous pouvez supprimer uniquement les icônes en conflit:

  1. Quitter Chrome
  2. Chargez la base de données des favicons (en utilisant sqlite ici):

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

  1. Rechercher le fichier qui cause des problèmes

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

  1. Si vous êtes satisfait du résultat:

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


Alternativement , vous pouvez rechercher un modèle que vous pouvez réutiliser pour supprimer plusieurs entrées:


  1. Recherche de plusieurs fichiers qui posent problème

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

  1. Et encore si vous êtes satisfait de ce que cela retourne:

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


  1. Tapez .exit et appuyez sur Entrée pour quitter sqlite
  2. Redémarrer Chrome
7
MrUpsidown

Lorsque vous demandez un favicon à Google, vous pouvez consulter les en-têtes de réponse.

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

Si vous placez un en-tête "Expires:" dans la réponse, les navigateurs clients demanderont à nouveau l'icône après cet horodatage. Lorsque vous effectuez un développement actif, vous pouvez définir l'horodatage d'expiration sur une seconde ou deux dans le futur et le laisser toujours chercher ce résultat, bien que ce soit un plan médiocre à long terme.

6
Dean J

La prise en charge des favicon de Chrome est incorrecte - ignorez cette réponse

J'ai écrit cette réponse avec l'impression que c'était ce qu'il fallait pour actualiser les favicons dans Google Chrome. Cependant, il s'avère que cela ne fonctionne que pendant les cinq premières minutes environ, jusqu'à ce que l'icône devienne irrémédiablement perdue dans la synchronisation de l'historique de Chrome .

Réponse originale

Vous n'avez pas besoin de vider le cache, de redémarrer votre navigateur, de ou réécrire votre code HTML - il vous suffit de changer l'URL de l'icône, une fois, pour que le navigateur oublie l'icône précédemment mise en cache.

En supposant que vous ayez défini votre icône via des éléments <link> dans le <head> de votre page, vous pouvez le faire en exécutant le fichier standard-JS one-liner dans la console:

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

Pour une implémentation plus avancée de ceci qui peut automatiquement le faire pour les utilisateurs finaux en production, voir freshicon.js .

5

J'ai récemment restauré mes favoris et je cherchais un moyen de restaurer les favicons sans visiter chaque page. Ma recherche m'a amené à ce fil. 

Pour ceux qui se trouvent dans une situation similaire, téléchargez simplement l’addon FAVICON RELOADER. Une fois installé, vous trouverez la commande "Recharger les icônes favorites" dans le menu déroulant BOOKMARKS.

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

4
bgc

Si vous utilisez PHP .., vous pouvez également utiliser cette ligne.

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

Il actualisera votre favicon à chaque chargement de page.

4
Shakeel Ahmed

Si vous souhaitez simplement le déboguer pour vous assurer qu'il a bien été modifié, vous pouvez simplement ajouter une entrée factice à votre fichier/etc/hosts et cliquer sur la nouvelle URL. Ce favicon ne serait pas déjà mis en cache et vous pouvez vous assurer que votre nouveau fonctionne.

À part changer le nom du favicon, il n’ya aucun moyen de forcer vos utilisateurs à obtenir une nouvelle copie.

3
cpjolicoeur

Version Chrome: 68.0.3440.106

Redémarrez simplement Chrome (dans la barre d'adresse): chrome://restart 

2
Lowryder

Cela fonctionne pour Chrome:

  • sur Mac: supprimer le fichier

    $ {user.home}/Bibliothèque/Support d'application/Google/Chrome/Par défaut/Favicons

  • sous Windows: supprimer des fichiers

    C:\Utilisateurs [nom d'utilisateur]\AppData\Local\Google\Chrome\Données utilisateur\Par défaut\Favicons C:\Utilisateurs [nom d'utilisateur]\AppData\Local\Google\Chrome\Données utilisateur\Par défaut\Favicons journal

la source

2
Nikolai Koudelia

Je sais que c’est une question très ancienne, mais c’est aussi une question toujours d'actualité, bien que ces jours-ci ne s'appliquent qu'à la mozilla. (Je n'ai aucune idée de ce que fait Explorer car nous ne codons pas pour les navigateurs non standard).

Chrome se comporte bien si l’on inclut une balise icon dans l’en-tête.

Bien que Mozilla soit au courant du problème, comme d'habitude, elle ne répare jamais les petites choses agaçantes. Même 6 ans plus tard.

Donc, il y a deux façons de forcer une icône de rafraîchir avec Firefox.

  1. Demandez à tous vos clients de désinstaller Firefox. Puis réinstallez.

  2. Tapez manuellement juste le domaine dans la barre d’URL - n’utilisez pas http ou www Juste le domaine (mydomain.com).

Cela suppose bien sûr que vos enregistrements ns incluent uniquement la résolution du nom de domaine.

1
rockmo

Assurez-vous également de mettre l'URL de l'image complète et pas seulement son chemin relatif

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

Et pas: 

images/favicon.ico
1
Amr Elgarhy

Ceci est une solution de contournement pour le bogue chrome: changez l'attribut rel en feuille de style! Gardez le lien d'origine si. Fonctionne comme un charme:

J'ai proposé cette solution de contournement, car nous devons également pouvoir mettre à jour les sites des clients/le code de production et je n'ai trouvé aucune autre solution efficace.

1
user1427015

Il suffit de changer ce nom de fichier = 'favicon1.ico'

0
Armin Alibasic

Si le problème persiste malgré l'application des étapes ci-dessus essayez de redémarrer le serveur IIS . J'espère que cela t'aides...

0
Murat Yıldız

Simple,

1: Je ne veux pas me mêler de codes (ps, le constructeur de mon site n'utilise pas de codes, il utilise le bouton "Télécharger un fichier" et le fait lui-même)

2: j'ai essayé le CTRL+F5 et ça ne marche pas pour moi alors ...

J'ai une solution:

IE: Effacez tous les historiques du navigateur et les cookies en vous rendant dans les paramètres c. O

Chrome: allez dans le menu situé dans le coin supérieur droit en dessous du X qui ressemble à un =, puis allez dans les paramètres, l’historique, EFFACER LES DONNÉES DE NAVIGATION et cochez toutes les cases appropriées (j’ai fait Historique, les cookies et vider le la nuit des temps)

0
Robert

Voici comment je l'ai géré avec un favicon simplement animé et FireFox 3.6.13 (version bêta). Cela fonctionnera probablement aussi pour les autres versions de FireFox, faites-moi savoir s'il ne le fait pas .. C'est la solution fondamentalement d'artlung, le fichier .gif également:

  1. J'ai ouvert par programme FTP, téléchargé mes fichiers favicon.ico ET favicon.gif, 
  2. puis supprimés à partir des fichiers de mon serveur.
  3. Puis je les ai ouvert dans mon navigateur comme suggéré par artlung: http://mysite.com/favicon.ico AND http://mysite.com/favicon.gif Une fois ces adresses chargées et 404 pages d'erreur affichées ("page non trouvée")
  4. ALORS, j'ai transféré les deux fichiers sur mon serveur et PRESTO - les icônes appropriées ont été affichées instantanément.
0
lineofbirds