Pourquoi le favicon n'apparaît-il pas parfois et génère-t-il des erreurs de «page non trouvée», et d'autres fois


8

Comme la question l'indique, le journal de Drupal montre parfois que le favicon n'est pas trouvé. En effet, il n'apparaît pas dans l'onglet navigateur ou la barre d'adresse. À d'autres moments, même au cours de la même session de surf, cela apparaît.

Pourquoi fait-il cela et comment puis-je l'empêcher pour que le favicon s'affiche toujours?

J'utilise la version Drupal 7.22. avec un sous-thème personnalisé et un thème administrateur (Stark).

Mon favicon est défini dans la configuration du thème du sous-thème sur sites / default / files / images / favicon.ico et qui se trouve là comme je l'ai vérifié via FTP.

Le journal indique que le navigateur recherche dans example.com/favicon.ico.

Le sous-thème personnalisé que j'utilise a <link rel="shortcut icon" href="http://example.com/sites/default/files/images/favicon.ico"; type="image/vnd.microsoft.icon" />dans le code source et le thème d'administration (Stark) utilise <link type="image/vnd.microsoft.icon" href="http://example.com/misc/favicon.ico"; rel="shortcut icon">et ce fichier existe également à cet emplacement (n'utilisant pas example.com, bien sûr).

Drupal utilise des URL propres.

Le serveur Web est Apache sur Debian Linux.

Je vous remercie.


Pourrait aider si vous fournissez un référent pour ces erreurs, devrait être dans le journal.
Mołot

@Molot Le champ de référence est vierge ou une autre page du site dans tous les cas, j'ai vérifié dans le journal.
authentictech

Pouvez-vous modifier dans le message du journal pour montrer le chemin, quel serveur Web vous utilisez, ainsi que si mod_rewrite fonctionne (c.-à-d., Nettoyer les URL)?
mpdonadio

Réponses:


4

Certains navigateurs recherchent favicon sous http://example.com/favicon.ico sans vérification. Mais ils sont aujourd'hui minoritaires.

Plus de respect:

<link rel="icon" href="http://example.com/img/icon.png">

comme décrit par le W3C .

Si votre site essaie d'utiliser l' <link>approche mais échoue sur certaines pages, comme les pages d'administration rendues à l'aide d'un modèle différent, et que vous n'avez pas favicon.ico à l'emplacement par défaut, vous obtiendrez les effets décrits exactement.

Si le navigateur recherche http://example.com/favicon.ico lorsque vous en avez un, <link rel="shortcut icon">c'est un problème de navigateur, pas le vôtre. Cela signifie que le navigateur (ou au moins cette partie de son code) est obsolète, à moins qu'il ne regarde sous l'URI correct en premier et reçoive une autre erreur, mais ensuite vous verrez deux erreurs dans le journal, une pour le bon endroit, deuxième pour une obsolète. Dans la file d'attente de Mozilla, il y a un certain nombre de rapports sur la détection incorrecte de favicon par FireFox - dans l'exemple celui-ci . Il montre comment même les navigateurs modernes peuvent parfois revenir aux anciennes méthodes.


Oui, le journal indique que le navigateur recherche dans example.com/favicon.ico . Le sous-thème personnalisé que j'utilise pour le site donne <link rel = "shortcut icon" href = " example.com/sites/default/files/images/favicon.ico " type = "image / vnd.microsoft.icon" /> dans le code source (pas réellement example.com) qui est l'emplacement correct. Si je désactive la superposition, le thème d'administration utilise <link type = "image / vnd.microsoft.icon" href = " example.com/misc/favicon.ico " rel = "icône de raccourci"> et ce fichier existe également à cet endroit.
authentictech

Tout semble correct comme il se doit. Est-ce donc un problème de navigateur ou de site Web? Où pourrais-je le réparer? Merci.
authentictech

@authentictech si le navigateur recherche example.com/favicon.ico quand vous avez le bon <link rel="shortcut icon">c'est un problème de navigateur, pas le vôtre. Cela signifie que le navigateur est obsolète, à moins qu'il ne regarde d'abord sous le bon endroit et n'obtienne une autre erreur, mais vous le verrez ensuite dans les journaux juste avant celui-ci. Je mettrai à jour ma question.
Mołot

1
@MPD Il pourrait ne pas être servi par Apache; La configuration nginx du Panthéon omet cette règle par exemple (si je me souviens bien)
Clive

2
@authentictech Firefox a de nombreux rapports de bogues ouverts sur la mauvaise gestion des favicon. Comme celui-ci par exemple. Certaines parties de son code sont anciennes, tristes mais vraies. Si vous voulez gérer cela, vous pouvez ajouter une réécriture à votre .htaccess, mais il s'agira de contourner un bug de navigateur, pas de corriger un bug de site.
Mołot

2

La solution rapide et facile à cette douleur consiste à utiliser le module de redirection et à en faire une redirection.

Une fois que le module est activé, accédez à admin/config/search/redirect/addet utilisez favicon.icosous et de devrait être l'emplacement réel de votre thème favicon.ico.


Ce fichier est automatiquement géré par .htaccess, de sorte que la requête ne parvient jamais à Drupal pour que le module de redirection le gère.
Vincent

1
Oui, cela arrive à Drupal. Sinon, comment serait-il enregistré dans le journal Drupal? J'ai utilisé cette approche avec succès dans la production.
cdmo

1
Vous avez raison, je viens de tester cela. Modifié votre réponse d'origine afin que je puisse passer mon downvote à un upvote.
Vincent

0

Si vous utilisez Apache, la meilleure façon de le résoudre est de mettre:

<Location /favicon.ico>
  ErrorDocument 404 "No favicon"
</Location>

Ce code devrait fonctionner dans votre fichier vhost ou devrait également fonctionner dans le fichier .htaccess, voir http://httpd.apache.org/docs/2.4/sections.html pour plus de détails


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.