Ablauf statischer Objekte expiration-of-static-objects

CAUTION
AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.

Statische Objekte (z. B. Symbole) ändern sich nicht. Daher sollte das System so konfiguriert werden, dass sie (für einen angemessenen Zeitraum) nicht ablaufen und so unnötigen Traffic reduzieren.

Dies hat folgende Auswirkungen:

  • Lädt Anforderungen aus der Serverinfrastruktur ab.
  • Erhöht die Leistung beim Laden von Seiten, da der Browser Objekte im Browser-Cache zwischenspeichert.

Abläufe sind im HTTP-Standard in Bezug auf den „Ablauf“ von Dateien spezifiziert (siehe etwa Kapitel 14.21 des Dokuments RFC 2616, „Hypertext Transfer Protocol – HTTP 1.1“). Dieser Standard greift auf den Header zurück, um Clients das Speichern von Objekten im Cache zu erlauben, bis die Objekte als alt eingestuft werden; diese Objekte werden für den angegebenen Zeitraum im Cache gespeichert, ohne dass der Ursprungsserver einer Statusprüfung unterzogen wird.

NOTE
Diese Konfiguration ist vollständig losgelöst vom Dispatcher (und kann nicht für diesen verwendet werden).
Der Dispatcher dient dem Caching der Daten vor AEM.

Alle Dateien, die nicht dynamisch sind und sich im Laufe der Zeit nicht ändern, können und sollten zwischengespeichert werden. Die Konfiguration für den Apache HTTPD-Server könnte abhängig von der Umgebung wie eine der folgenden aussehen:

CAUTION
Achten Sie bei der Definition des Zeitraums, in dem ein Objekt als aktuell gilt. Da gibt es keine Überprüfung bis zum Ablauf des angegebenen Zeitraums, kann der Client schließlich alte Inhalte aus dem Cache präsentieren.
  1. Für eine Autoreninstanz:

    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>
    

    Dadurch kann der Zwischenspeicher (z. B. der Browsercache) CSS-, JavaScript-, PNG- und GIF-Dateien bis zu einem Monat speichern, bis sie ablaufen. Dies bedeutet, dass sie nicht von AEM oder dem Webserver angefordert werden müssen, sondern im Browsercache verbleiben können.

    Andere Bereiche der Site sollten nicht in einer Autoreninstanz zwischengespeichert werden, da sie jederzeit geändert werden können.

  2. Für eine Veröffentlichungsinstanz:

    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>
    

    Hierdurch wird ermöglicht, dass der temporäre Cache (etwa der Browsercache) CSS-, JavaScript-, PNG- und GIF-Dateien einen Tag lang in Clientcaches speichert. Obwohl dieses Beispiel globale Einstellungen für alle Elemente unter /content und /etc/designs veranschaulicht, sollten Sie hier genauer vorgehen.

    Je nachdem, wie oft Ihre Site aktualisiert wird, können Sie auch das Zwischenspeichern von HTML-Seiten in Erwägung ziehen. Ein angemessener Zeitraum wäre 1 Stunde:

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

Gehen Sie nach der Konfiguration der statischen Objekte die Datei request.log durch, während Sie Seiten mit solchen Objekten auswählen, um zu bestätigen, dass keine (unnötigen) Anforderungen für statische Objekte erfolgen.

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