¿Por qué el favicon a veces no aparece y genera errores de "página no encontrada", y otras veces aparece

8

Como la pregunta implica, en ocasiones el registro de Drupal muestra que no se encuentra el favicon. De hecho, no se muestra en la pestaña del navegador o en la barra de direcciones. En otras ocasiones, incluso dentro de la misma sesión de navegación, aparece.

¿Por qué hace esto y cómo puedo evitarlo para que siempre se muestre el favicon?

Estoy usando la versión Drupal 7.22. con un subtema personalizado y un tema de administrador (Stark).

Mi favicon está configurado en la configuración del tema del subtema en sites / default / files / images / favicon.ico y se encuentra allí como lo he verificado a través de FTP.

El registro muestra que el navegador está buscando en example.com/favicon.ico.

El subtema personalizado que uso tiene <link rel="shortcut icon" href="http://example.com/sites/default/files/images/favicon.ico"; type="image/vnd.microsoft.icon" />en el código fuente y el tema de administración (Stark) usa <link type="image/vnd.microsoft.icon" href="http://example.com/misc/favicon.ico"; rel="shortcut icon">y este archivo también existe en esa ubicación (no usando example.com, por supuesto).

Drupal está utilizando URL limpias.

El servidor web es Apache en Debian Linux.

Gracias.

authentictech
fuente
Podría ayudar si proporciona un referente para estos errores, debe estar en el registro.
Mołot
@Molot El campo de referencia está en blanco u otra página en el sitio en todos los casos que he verificado en el registro.
authentictech
¿Puede editar en el mensaje de registro para mostrar la ruta, qué servidor web está utilizando, así como si mod_rewrite funciona (es decir, URL limpias)?
mpdonadio

Respuestas:

4

Algunos navegadores buscan favicon en http://example.com/favicon.ico sin verificar. Pero ahora son minoritarios.

Más respeto:

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

según lo descrito por W3C .

Si su sitio intenta utilizar el <link>enfoque pero falla en algunas páginas, como las páginas de administración que se representan con una plantilla diferente, y no tiene favicon.ico en la ubicación predeterminada, obtendrá los efectos descritos exactamente.

Si el navegador está buscando http://example.com/favicon.ico cuando lo tiene correcto <link rel="shortcut icon">, es un problema del navegador, no el suyo. Significa que el navegador (o al menos esa parte de su código) está desactualizado, a menos que primero haya visto el URI correcto y haya obtenido otro error, pero luego vería dos errores en el registro, uno para el lugar correcto, el segundo para el obsoleto. En la cola de Mozilla hay una serie de informes sobre la detección incorrecta de favicones por parte de FireFox, por ejemplo, este . Muestra cómo incluso los navegadores modernos a veces pueden recurrir a los métodos antiguos.

Mołot
fuente
Sí, el registro muestra que el navegador está buscando en example.com/favicon.ico . El subtema personalizado que uso para el sitio proporciona <link rel = "shortcut icon" href = " example.com/sites/default/files/images/favicon.ico " type = "image / vnd.microsoft.icon" /> en el código fuente (no en realidad example.com) que es la ubicación correcta. Si apago la superposición, el tema de administración está usando <link type = "image / vnd.microsoft.icon" href = " example.com/misc/favicon.ico " rel = "icono de acceso directo"> y este archivo también existe en ese lugar
authentictech
Todo parece correcto como debería ser. Entonces, ¿se trata de un problema del navegador o del sitio web? ¿A dónde iría para arreglarlo? Gracias.
authentictech
@authentictech si el navegador está buscando example.com/favicon.ico cuando lo tienes <link rel="shortcut icon">, es un problema del navegador, no tuyo. Significa que el navegador está desactualizado, a menos que primero haya visto el lugar correcto y haya recibido otro error, pero luego lo vería en los registros justo antes de este. Actualizaré mi pregunta.
Mołot
1
@MPD Puede que Apache no lo sirva; La configuración nginx de Pantheon omite esa regla, por ejemplo (si no recuerdo mal)
Clive
2
@authentictech Firefox tiene numerosos informes de errores abiertos sobre el manejo inadecuado de favicon. Como este por ejemplo. Partes de su código son viejas, tristes pero ciertas. Si desea manejar eso, puede agregar reescribir a su .htaccess, pero estará pirateando un error del navegador, no solucionando el error del sitio.
Mołot
2

Una solución rápida y fácil para este problema es usar el módulo Redirect y hacer una redirección para él.

Una vez que el módulo esté habilitado, vaya a admin/config/search/redirect/addy use favicon.icounder from and to debería ser la ubicación real de su tema favicon.ico.

cdmo
fuente
Este archivo es manejado automáticamente por .htaccess, por lo que la solicitud nunca llega a Drupal para que el módulo Redirect lo maneje.
Vincent
1
Sí, llega a Drupal. De lo contrario, ¿cómo se registraría en el registro de Drupal? He utilizado este enfoque con éxito en la producción.
cdmo
1
Tienes razón, acabo de probar esto. Edité su respuesta original para que pueda cambiar mi voto a favor.
Vincent
0

Si está utilizando Apache, la mejor manera de solucionarlo es poner:

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

Este código debería funcionar en su archivo vhost o también debería funcionar en el archivo .htaccess, consulte http://httpd.apache.org/docs/2.4/sections.html para obtener más detalles.

Colin Shipton
fuente