2010-01-12 18 views
5

Tengo un problema bastante problemático que no he encontrado una buena solución todavía.Prevención del almacenamiento en caché del navegador en actualizaciones de aplicaciones web

Permití el almacenamiento en caché de todos mis archivos estáticos de aplicación (JS, CSS e imágenes) por navegador para el rendimiento.

El problema es que cuando realizo actualizaciones, los usuarios aún usan la versión anterior de su caché, lo que a menudo rompe la aplicación, y requiere borrar el caché cada vez para resolver el problema.

¿Existe algún buen enfoque de múltiples navegadores que aún permita el almacenamiento en caché de los archivos, pero puede obligarlos a volver a cargarlos cuando sea necesario?

Gracias por cualquier información.

Respuesta

7

Agregue algo a la URL como parámetro, p. myresource.css?version=1. El archivo se servirá correctamente, eso es un truco para forzar la recarga del caché. Solo necesita generar la página html dinámicamente.

+0

+1. Esto es lo que .Net hace cuando usa recursos web incorporados. – David

+0

Esta pregunta parece abarcar el tema en más detalles: http://stackoverflow.com/questions/118884/what-is-anlegit-way-to-force-browsers-to-reload-cached-css-js- archivos – ewernli

+0

Hola. Gracias por el enlace, parece dar una gran explicación. Además, para comprender su propia explicación, ¿será necesario mantener para siempre el parámetro de versión en el enlace y luego aumentar cada vez que se actualice la versión (como en el enlace que publicó)? Gracias de nuevo. – SyBer

0

He escuchado hablar sobre el uso de números de versión en los nombres de archivo que usted quiere que los usuarios almacenen en la memoria caché, pero no puedo decir lo "bueno" que es en comparación con otras opciones.

0

opciones que se me ocurren:

  • Reducir el caché TTL
  • tienda la materia puede almacenar en caché en un árbol de directorio versionado, por ejemplo:
    • /app/1.2/css/
    • /app/1.2/js/
Cuestiones relacionadas