Caducidad de objetos estáticos expiration-of-static-objects

CAUTION
AEM 6.4 ha llegado al final de la compatibilidad ampliada y esta documentación ya no se actualiza. Para obtener más información, consulte nuestra períodos de asistencia técnica. Buscar las versiones compatibles here.

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.

NOTE
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:

CAUTION
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 haya caducado, el cliente puede terminar presentando contenido antiguo desde la caché.
  1. Para una instancia de Autor:

    code language-xml
    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:

    code language-xml
    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 en las cachés del cliente. Aunque este ejemplo ilustra la configuración global de todo lo siguiente /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 de HTML. Un período de tiempo razonable sería de 1 hora:

    code language-xml
    <Location /content>
      ExpiresByType text/html "access plus 1 hour"
    </Location>
    

Una vez configurados los objetos estáticos, analice request.log, al seleccionar páginas que contienen dichos objetos, para confirmar que no se están realizando solicitudes (innecesarias) para objetos estáticos.

recommendation-more-help
6a71a83d-c2e0-4ce7-a6aa-899aa3885b56