Caducidad de objetos estáticos

Los objetos estáticos (por ejemplo, los iconos) no cambian. Por lo tanto, el sistema debe configurarse para que no caduque (durante un período de tiempo razonable) y reduzca así el tráfico innecesario.

Esto tiene el siguiente impacto:

  • Descarga las solicitudes de la infraestructura del servidor.
  • Aumenta el rendimiento de la carga de páginas, ya que el explorador almacena en caché los objetos en la caché del explorador.

El estándar HTTP especifica las caducidades con respecto a la "caducidad" de los archivos (consulte, por ejemplo, el capítulo 14.21 de RFC 2616 " Protocolo de transferencia de hipertexto — HTTP 1.1"). Este estándar utiliza el encabezado para permitir que los clientes almacenen en caché los objetos hasta que se consideren obsoletos; estos objetos se almacenan en caché durante el tiempo especificado sin que se realice ninguna comprobación de estado en el servidor de origen.

NOTA

Esta configuración es completamente independiente (y no funcionará para) Dispatcher.

El propósito de Dispatcher es almacenar en caché los datos delante de AEM.

Todos los archivos, que no son dinámicos y que no cambian con el tiempo, pueden y deben almacenarse en caché. La configuración del servidor HTTP de Apache podría parecerse a una de las siguientes: depende del entorno:

ATENCIÓN

Debe tener cuidado al definir el periodo de tiempo durante el cual un objeto se considera actualizado. Como no hay comprobación hasta que el período de tiempo especificado ha caducado, el cliente puede terminar presentando contenido antiguo desde la caché.

  1. Para una instancia de Autor:

    LoadModule expires_module modules/mod_expires.so
    <Location /libs>
      ExpiresByType text/css "access plus 1 month"
      ExpiresByType text/javascript "access plus 1 month"
      ExpiresByType image/png "access plus 1 month"
      ExpiresByType image/gif "access plus 1 month"
    </Location>
    

    Esto permite que la caché intermedia (por ejemplo, la caché del navegador) almacene archivos CSS, Javascript, PNG y GIF durante un mes hasta que caduquen. Esto significa que no es necesario solicitarlas a AEM o al servidor web, pero puede permanecer en la caché del explorador.

    Otras secciones del sitio no deben almacenarse en caché en una instancia de autor, ya que están sujetas a cambios en cualquier momento.

  2. Para una instancia de publicación:

    LoadModule expires_module modules/mod_expires.so
    <Location /content>
      ExpiresByType text/css "access plus 1 day"
      ExpiresByType text/javascript "access plus 1 day"
      ExpiresByType image/png "access plus 1 day"
      ExpiresByType image/gif "access plus 1 day"
    </Location>
    <Location /etc/designs>
      ExpiresByType text/css "access plus 1 day"
      ExpiresByType text/javascript "access plus 1 day"
      ExpiresByType image/png "access plus 1 day"
      ExpiresByType image/gif "access plus 1 day"
    </Location>
    

    Esto permite que la caché intermedia (por ejemplo, la caché del navegador) almacene archivos CSS, Javascript, PNG y GIF durante un día como máximo en las cachés del cliente. Aunque este ejemplo ilustra la configuración global de todo lo que está debajo de /content y /etc/designs, debe hacerlo más granular.

    Según la frecuencia con la que se actualice el sitio, también puede considerar la posibilidad de almacenar en caché las páginas HTML. Un período de tiempo razonable sería de 1 hora:

    <Location /content>
      ExpiresByType text/html "access plus 1 hour"
    </Location>
    

Después de configurar los objetos estáticos, analice request.log, mientras selecciona páginas que contienen dichos objetos, para confirmar que no se realizan solicitudes (innecesarias) para objetos estáticos.

En esta página

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now