Si se usa mod_expires en .htaccess, el cliente descargará los archivos modificados.

Si se usa mod_expires en .htaccess, el cliente descargará los archivos modificados.

Estoy intentando emplear el almacenamiento en caché para acelerar el tiempo de respuesta de un sitio web. La mayor parte de la documentación que he leído sugiere establecer la caducidad en +1 mes desde el momento del acceso de la siguiente manera:

ExpiresActive On
ExpiresByType text/css "access plus 1 month"

Me preocupa que si actualizo un archivo CSS, el cliente no obtendrá el archivo actualizado.

¿Es posible garantizar que el cliente descargue una nueva versión de un archivo si se modifica?

Cualquier ayuda muy apreciada.

Respuesta1

Su preocupación es correcta: los clientes cuyos navegadores han recuperado el archivo normalmente no recibirán la versión actualizada hasta 1 mes después de haber accedido a él, a menos que hayan borrado la memoria caché de su navegador o hayan vuelto a cargar la página.

Una forma de solucionar esto es cuando actualice el archivo CSS, cambie el HTML que hace referencia a él para que tenga ?v=2 o ?v=3, etc. al final del atributo href de la etiqueta del enlace (es decir, después del .css). Los navegadores lo ven como una URL única y, por lo tanto, descargarán la nueva copia, pero apuntará al mismo archivo físico .css en su servidor.

<link rel="stylesheet" type="text/css" href="/styles.css" />

se convierte

<link rel="stylesheet" type="text/css" href="/styles.css?v=2" />

información relacionada