No tengo un favicon.ico, pero IE siempre lo solicita.
¿Es posible evitar que el navegador solicite el favicon desde mi sitio? ¿Quizás algo de META-TAG en el encabezado HTML?
No tengo un favicon.ico, pero IE siempre lo solicita.
¿Es posible evitar que el navegador solicite el favicon desde mi sitio? ¿Quizás algo de META-TAG en el encabezado HTML?
Respuestas:
Primero diré que tener un favicon en una página web es algo bueno (normalmente).
Sin embargo, no siempre se desea y, en ocasiones, los desarrolladores necesitan una forma de evitar la carga adicional. Por ejemplo, un IFRAME solicitaría un favicon sin mostrarlo. Peor aún, en Chrome y Android, un IFRAME generará 3 solicitudes de favicons:
"GET /favicon.ico HTTP/1.1" 404 183
"GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 197
"GET /apple-touch-icon.png HTTP/1.1" 404 189
Lo siguiente usa URI de datos y puede usarse para evitar solicitudes de favicon falsas:
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
Para referencias ver aquí:
El error / comportamiento de Chrome probablemente se solucionará en las próximas versiones.
Aquí está el envío de errores para que pueda votar:
ACTUALIZACIÓN 1:
De los comentarios (jpic) parece que Firefox> = 25 ya no le gusta la sintaxis anterior. Probé en Firefox 27 y no funciona mientras todavía funciona en Webkit / Chrome.
Así que aquí está el nuevo que debería cubrir todos los navegadores recientes. Probé Safari, Chrome y Firefox:
<link rel="icon" href="data:;base64,=">
Dejé el nombre de "acceso directo" del valor del atributo "rel", ya que eso es solo para IE más antiguo y las versiones de IE <8 tampoco les gustan los dataURI. No probado en IE8.
ACTUALIZACIÓN 2:
Si necesita que su documento valide con HTML5, use esto en su lugar:
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
parece resolver el problema.
data:image/png;base64,iVBORw0KGgo=
en el navegador, guardarlo como favicon.ico
aka. archivo PNG vacío y guárdelo en la raíz del sitio web. ¿Derecha?
Simplemente agregue la siguiente línea a la <head>
sección de su archivo HTML:
<link rel="icon" href="data:,">
Características de esta solución:
href="#"
)reserves space
?
Creo que he visto esto (No lo he probado ni lo he usado personalmente):
<link rel="shortcut icon" href="#" />
Alguien tuvo una experiencia similar?
EDITAR:
Acabo de probar el fragmento anterior y en una actualización completa forzada, no se vieron solicitudes de favicon en Fiddler. Probé contra IE8 (modo Compat como estándares IE7) y FF 3.6.
href
enlace a algún recurso estático (en caché) que ya haya cargado (por ejemplo, css o archivo de script), para garantizar que una página dinámica (sin caché) no se solicite dos veces. (Solo para estar seguro ya que href="#"
técnicamente apunta a la página web actual).
No puedes Todo lo que puede hacer es hacer que la imagen sea lo más pequeña posible y establecer algunos encabezados de invalidación de caché ( Expires
, Cache-Control
) en el futuro. Esto es lo que Yahoo! tiene que decir sobre las solicitudes de favicon.ico.
Puede usar las directivas .htaccess o del servidor para denegar el acceso a favicon.ico, pero el servidor enviará una respuesta de acceso denegado al navegador y esto todavía ralentiza el acceso a la página.
Puede detener el navegador que solicita favicon.ico cuando un usuario regrese a su sitio, haciendo que permanezca en la memoria caché del navegador.
Primero, proporcione una pequeña imagen favicon.ico, podría estar en blanco, pero lo más pequeña posible. Hice uno en blanco y negro de menos de 200 bytes. Luego, usando .htaccess o las directivas del servidor, establezca el encabezado del archivo Expires un mes o dos en el futuro. Cuando el mismo usuario regrese a su sitio, se cargará desde la memoria caché del navegador y no se enviará ninguna solicitud a su sitio. No más 404 en los registros del servidor también.
Si tiene control sobre un servidor Apache completo o tal vez un servidor virtual, puede hacer esto:
Si la raíz del documento del servidor es decir / var / www / html, agregue esto a /etc/httpd/conf/httpd.conf:-
Alias /favicon.ico "/var/www/html/favicon.ico"
<Directory "/var/www/html">
<Files favicon.ico>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</Files>
</Directory>
Luego, un solo favicon.ico funcionará para todos los sitios alojados virtuales, ya que lo está aliasando. Se extraerá del caché del navegador durante un mes después de la visita de los usuarios.
Para .htaccess se informa que esto funciona (no comprobado por mí): -
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"
Una solución muy simple es poner el siguiente código en su .htaccess
. Tuve el mismo problema y resolvió mi problema.
<IfModule mod_alias.c>
RedirectMatch 403 favicon.ico
</IfModule>
Referencia: http://perishablepress.com/block-favicon-url-404-requests/
En nuestra experiencia, con Apache cayendo a petición de favicon.ico, comentamos encabezados adicionales en el archivo .htaccess.
Por ejemplo, teníamos el conjunto de encabezado X-XSS-Protection "1; mode = block"
... pero nos habíamos olvidado de sudo encabezados a2enmod de antemano. Comentar los encabezados adicionales que se envían resolvió nuestro problema favicon.ico.
También teníamos varios hosts virtuales configurados para el desarrollo, y solo fallamos con 500 Internal Server Error al usar http: // localhost y obtener /favicon.ico. Si ejecuta "curl -v http: //localhost/favicon.ico " y recibe una advertencia acerca de que el nombre de host no está en la memoria caché de resolución o algo por el estilo, puede experimentar problemas.
Podría ser tan simple como no recuperar (lo intentamos y no funcionó, porque nuestra causa raíz era diferente) o buscar directivas en apache2.conf o .htaccess que podrían estar causando 500 mensajes extraños de error interno del servidor.
Descubrimos que fallaba tan rápido que no había nada útil en los registros de errores de Apache y pasamos una mañana entera cambiando cosas pequeñas aquí y allá hasta que resolvimos el problema de configurar encabezados adicionales cuando habíamos olvidado cargar mod_headers.
A veces aparece este error, cuando HTML tiene algún código comentado y el navegador intenta buscar algo. Como en mi caso, había comentado el código de un formulario web en un matraz y estaba obteniendo esto.
Después de pasar 2 horas, lo arreglé de las siguientes maneras:
1) Creé un nuevo entorno de Python y luego arrojó un error en la línea HTML comentada, antes de esto solo arrojé el error 'GET /favicon.ico HTTP / 1.1 "404'
2) A veces, cuando tenía un código duplicado, como el archivo python existente con el mismo nombre, entonces también vi este error, intente eliminarlos también
Podrías usar
<link rel="shortcut icon" href="http://localhost/" />
De esa manera, en realidad no se solicitará al servidor.