favicons - ¿Cómo fuerzo una actualización de favicon?
ios favicon (30)
Tengo una aplicación Grails que se ejecuta localmente utilizando su propio Tomcat y acabo de cambiar el favicon por uno nuevo. El problema es que no puedo verlo en ningún navegador. Aparece el viejo favicon o no obtengo favicon, pero no el nuevo. No creo que esto sea un problema de Grails en sí, sino más bien un problema con los favicons.
¿Qué se supone que pasa con los favicons? ¿Cómo se supone que deben trabajar? Tengo numerosos marcadores en mi navegador que tienen los íconos incorrectos y parece que nunca se actualizan. ¿Cómo fuerzo al servidor / navegador para que deje de almacenar en caché? Parece bastante tonto almacenarlos siempre en caché, ya que normalmente solo son 16x16. ¿Por qué no simplemente subirlos con cada visita a la página? No es exactamente una gran sobrecarga.
El soporte de favicon de Chrome está defectuoso - ignore esta respuesta
Escribí esta respuesta con la impresión de que esto es lo que se necesitaba para actualizar los favicons en Google Chrome. Sin embargo, resulta que esto solo funciona durante los primeros cinco minutos más o menos, hasta que el ícono se pierde irremediablemente en la sincronización del historial de Chrome .
Respuesta original
No tiene que borrar su caché, reiniciar su navegador, o volver a escribir su HTML, solo tiene que cambiar la URL del icono, una vez , para que el navegador olvide el icono previamente almacenado en caché.
Suponiendo que ha definido su ícono a través de los elementos <link>
en el <head>
su página, puede hacerlo ejecutando este estándar-JS one-liner en la consola:
[].slice.call(document.querySelectorAll(''head>link[rel$="icon"]'')).map(function(ln){ln.href+=''?v=2''});
Para una implementación más avanzada de esto que pueda hacer esto automáticamente para los usuarios finales en producción, consulte freshicon.js .
Intenta abrir en una nueva pestaña
Intenté muchas de las cosas anteriores (restablecer el caché, actualizar, usar la etiqueta de enlace, etc.), incluso revisé mi archivo .htaccess
y reinicié la variable ExpiresByType.
Pero esto es lo que finalmente me funcionó tanto en Chrome (25.0.x) como en Safari (6.0.1):
- Vaciar caché
- Hard-link el favicon con la etiqueta
<link>
- Navegando a
mysite.com/favicon.ico
- Abrir
mysite.com
en una nueva pestaña
(Hasta el paso 3, actualizándose en la misma pestaña, se sigue reproduciendo el icono anterior).
Al destruir el archivo que utiliza su navegador para almacenar favicons antiguos, puede forzar que se carguen otros nuevos.
- Cierra tu navegador. Asegúrese de que ya no se estén ejecutando procesos del navegador (por ejemplo, verifique el Administrador de tareas para
chrome.exe
ofirefox.exe
). - Navega hasta donde tu navegador almacena los archivos de usuario:
- Para Chrome, vaya al directorio de datos de Chrome .
- Para Firefox, vaya a la carpeta del perfil de Firefox .
- Eliminar el caché de favicon.
- Para Chrome, eliminar
Favicons
yFavicons-journal
- Para Firefox, eliminar
favicons.sqlite
- Para Chrome, eliminar
Esto casi definitivamente funcionará. Si no:
- Posibilidad 1: una actualización de su navegador ha cambiado cómo funciona la caché de favicon. Por favor, edita esta respuesta con nuevas instrucciones.
- Posibilidad 2: Su problema de favicon no tiene nada que ver con el almacenamiento en caché excesivamente agresivo. En su lugar, puede ser un problema de carga de recursos: al utilizar las Herramientas de desarrollador, asegúrese de que el nuevo favicon se esté descargando correctamente.
Así es como lo manejé con un favicon animado y FireFox 3.6.13 (versión beta). Probablemente también funcione para otras versiones de FireFox, avíseme si no es así. Es básicamente la solución de artlung, pero también aborda el archivo .gif:
- Abrí por el programa FTP, descargué mis archivos favicon.ico Y favicon.gif,
- luego los borró de los archivos de mi servidor.
- Luego los abrí en mi navegador como sugería artlung: http://mysite.com/favicon.ico Y http://mysite.com/favicon.gif Una vez que esas direcciones se cargaron y se mostraron las páginas de error 404 ("página no encontrada")
- ENTONCES volví a cargar ambos archivos en mi servidor y PRESTO: los íconos correctos se mostraron instantáneamente.
Bueno, la sobrecarga es una sobrecarga, pero sí, no es demasiado grande.
Además, los navegadores a veces son "codiciosos" sobre los archivos en caché. Puede borrar la memoria caché y / o reiniciar su navegador y puede ver el cambio. Si eso falla aunque ...
Mi solución de cheapo es:
- Visite su archivo en http://example.com/favicon.ico en su navegador.
- Elimine el favicon.ico de su webroot.
- Visite http://example.com/favicon.ico nuevo en un navegador, verifique que falte.
- Sube una nueva a tu webroot.
- Visite http://example.com/favicon.ico nuevamente en un navegador, verifique que sea el nuevo.
Si esa secuencia no funciona, entonces algo más está sucediendo.
Cambie el nombre del archivo favicon y agregue un encabezado html con el nuevo nombre, como:
<link rel="SHORTCUT ICON" href="http://www.yoursite.com/favicon2.ico" />
Cuando solicite el favicon de Google, puede echar un vistazo a los encabezados de respuesta.
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 coloca un encabezado "Expires:" en la respuesta, los navegadores del cliente volverán a solicitar el ícono después de esa marca de tiempo. Mientras realiza un desarrollo activo, puede establecer la fecha y hora de caducidad en uno o dos segundos en el futuro, y siempre puede obtener esto, aunque es un plan pobre a largo plazo.
Dependiendo del navegador, se manejan de manera diferente, pero generalmente encuentro que voy a la página predeterminada del sitio y hago una actualización. CTRL + F5 , normalmente se actualizará.
EN MAC: Sh + Shift - R o mantenga presionada la tecla Ctrl y haga clic en el botón de recarga en el navegador.
En Chrome en Mac OS X se puede eliminar un archivo con caché de favicon
${user.home}/Library/Application Support/Google/Chrome/Default/Favicons
Esta es una solución para el error de Chrome: ¡cambie el atributo rel a la hoja de estilos! Mantener el enlace original sin embargo. Funciona de maravilla:
Se me ocurrió esta solución porque también tenemos el requisito de poder actualizar los sitios / código de producción del cliente y no encontré ninguna de las otras soluciones para trabajar.
Esta respuesta no se ha dado todavía, así que pensé en publicarla. Busqué en toda la web y no encontré una buena respuesta para probar los favicons en el desarrollo local.
En la versión actual de Chrome (en OSX), si haces lo siguiente, obtendrás una actualización instantánea de favicon:
- Desplazarse sobre la pestaña
- Botón derecho del ratón
- Seleccione recargar
- Tu favicon ahora debe ser actualizado
Esta es la forma más fácil que he encontrado para actualizar el favicon localmente.
Esto funciona para Chrome:
en Mac: borrar archivo
$ {user.home} / Library / Application Support / Google / Chrome / Default / Favicons
en Windows: borrar archivos
C: / Users [nombre de usuario] / AppData / Local / Google / Chrome / User Data / Default / Favicons C: / Users [nombre de usuario] / AppData / Local / Google / Chrome / User Data / Default / Favicons-journal
Más que probable es un problema de navegador web. Tendrá que eliminar su caché de su navegador, cerrar su navegador y volver a abrirlo. Eso debería arreglarlo.
No creo que sus favicons se actualicen en sus favoritos hasta que vuelva a visitar esa página, y suponiendo que haya borrado previamente la memoria caché de su navegador.
Su navegador web no saldrá a Internet para buscar un nuevo favicon por sí mismo ... gracias a Dios.
Ok, después de 10 minutos de wtf''ing, la forma fácil de solucionarlo es similar a la de lineofbirds
- Escriba www.yoursite.com/favicon.ico (o www.yoursite.com/apple-touch-icon.png, etc.)
- Empujar entrar
- Ctrl + F5
- Reiniciar el navegador (IE, Firefox)
Para Chrome en macOS, si no desea eliminar toda la base de datos de favicon de Chrome como se sugiere aquí, puede eliminar solo los íconos en conflicto:
- Salir de Chrome
- Cargue la base de datos de favicons (usando sqlite aquí):
sqlite3 ~/Library/Application/ Support/Google/Chrome/Default/Favicons
- Busque el archivo que está causando problemas
select * from favicons where url = ''http://mysite.dev/favicon.ico'';
- Si estás contento con la salida:
delete from favicons where url = ''http://mysite.dev/favicon.ico'';
Alternativamente , puede buscar un patrón que pueda reutilizar para eliminar varias entradas:
- Buscar múltiples archivos que están causando problemas
select * from favicons where url like ''http://mysite.dev%'';
- Y de nuevo si estás contento con lo que esto devuelve:
delete from favicons where url like ''http://mysite.dev%'';
- Escribe
.exit
y.exit
regresar para salir de sqlite - Reiniciar chrome
Para Internet Explorer, hay otra solución:
- Abrir el explorador de internet.
- Haga clic en menú> herramientas> opciones de internet.
- Haga clic en general> archivos temporales de internet> botón "configuración".
- Haga clic en el botón "ver archivos".
- Encuentra tu antiguo archivo favicon.ico y elimínalo.
- Reinicie el navegador (Internet Explorer).
Para actualizar el favicon de su sitio, puede forzar a los navegadores a descargar una nueva versión utilizando la etiqueta de enlace y una cadena de consulta en su nombre de archivo. Esto es especialmente útil en entornos de producción para garantizar que los usuarios obtengan la actualización.
<link rel="icon" href="http://www.yoursite.com/favicon.ico?v=2" />
Puede ser útil solo para unas pocas personas, pero tuve el mismo problema y descubrí que estaba relacionado con permisos de archivos, así que le di un permiso 777 y funcionó, por supuesto, después de que esté seguro de que el problema está ahí, haga Asegúrese de volver a cambiar los permisos a valores más seguros.
Recientemente restauré mis marcadores y buscaba una manera de restaurar los FavIcons sin visitar cada página. Mi búsqueda me llevó a este hilo.
Para aquellos en circunstancias similares, simplemente descargue el complemento FAVICON RELOADER. Una vez instalado, encontrará el comando "recargar iconos favoritos" en el menú desplegable de BOOKMARKS.
https://addons.mozilla.org/en-US/firefox/addon/faviconreloader/?src=api
Sé que esta es una pregunta muy antigua, pero también es relevante, aunque en estos días solo se aplica a Mozilla. (No tengo idea de qué explorador hace porque no codificamos para navegadores no estándar).
Chrome se comporta bien si se incluye una etiqueta de icono en el encabezado.
Aunque Mozilla es consciente del problema, como de costumbre, nunca solucionan las pequeñas cosas molestas. Incluso 6 años después.
Por lo tanto, hay dos formas de forzar la actualización de un icono con Firefox.
Haga que todos sus clientes desinstalen Firefox. Luego vuelva a instalar.
Escriba manualmente solo el dominio en la barra url: no use http o www solo el dominio (mydomain.com).
Esto supone, por supuesto, que sus registros ns incluyen resolución solo para el nombre de dominio.
Sencillo,
1: No quiero jugar con los códigos (ps mi creador de sitios no usa códigos, usa el botón "subir archivo" y lo hace él mismo)
2: Probé el CTRL + F5 y no me funciona, así que ...
TENGO UNA SOLUCIÓN:
IE: Borra todo el historial del navegador y las cookies yendo a la configuración cog O
Chrome: vaya al menú en la esquina superior derecha debajo de la X que se ve como a =, luego vaya a configuración, historial, BORRAR DATOS DE NAVEGACIÓN y marque todas las casillas que correspondan (hice historial, cookies y vacié el contenido del principio de los tiempos)
Si el problema continúa a pesar de aplicar algunos de los pasos anteriores, intente reiniciar el servidor IIS . Espero que esto ayude...
Si está usando PHP ... entonces también puede usar esta línea.
<link rel="shortcut icon" href="http://www.yoursite.com/favicon.ico?v=<?php echo time() ?>" />
Se actualizará su favicon en cada carga de la página.
Si solo está interesado en depurarlo para asegurarse de que ha cambiado, puede agregar una entrada ficticia a su archivo / etc / hosts y golpear la nueva URL. Ese favicon ya no se almacenará en caché y puede asegurarse de que el nuevo está funcionando.
Aparte de cambiar el nombre del favicon, no hay forma de forzar a los usuarios a obtener una nueva copia.
Si usas PHP, también podrías usar el Hash MD5 del favicon como una cadena de consulta:
<link rel="shortcut icon" href="favicon.ico?v=<?php echo md5_file(''favicon.ico'') ?>" />
De esta manera, el Favicon siempre se actualizará cuando se haya cambiado.
Como se señaló en los comentarios, también puede usar la última fecha de modificación en lugar del MD5-Hash para lograr lo mismo y ahorrar un poco en el rendimiento del servidor:
<link rel="shortcut icon" href="favicon.ico?v=<?php echo filemtime(''favicon.ico'') ?>" />
Simon, supongo que hay una razón por la que ninguna de las otras respuestas es aceptada hasta ahora. Por lo tanto, creo que este podría ser un problema de Grails, especialmente si estás usando el ''complemento de recursos''.
Si sus complementos proporcionan un favicon (que, de manera ilógica, muchos lo hacen), podrían anular el que usted desea usar, dado que el suyo está en un complemento.
Si eliminar el favicon de todos los complementos temporales resuelve el problema, es muy probable que esté experimentando esto:
Solo cambia este nombre de archivo = ''favicon1.ico''
También asegúrese de poner la URL de la imagen completa, no solo su ruta relativa:
http://www.example.com/images/favicon.ico
Y no:
images/favicon.ico
Versión de Chrome: 68.0.3440.106
Simplemente reinicia Chrome (en tu barra de direcciones): chrome://restart