Setup Sling Dynamic Include

Ein Video-Beispiel zur Installation und Verwendung von Apache Sling Dynamic Include mit AEM Dispatcher, das auf Apache HTTP Web Server ausgeführt wird.

HINWEIS

Stellen Sie sicher, dass die neueste Version von AEM Dispatcher lokal installiert ist.

  1. Laden Sie das Sling Dynamic Include Bundle herunter und installieren Sie es.

  2. Konfigurieren Sie Sling Dynamic Include über OSGi Configuration Factory unter http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.Configuration.

    Alternativ können Sie, um einen AEM Code-Basis hinzuzufügen, den entsprechenden Knoten sling:OsgiConfig unter folgendem Pfad erstellen:

    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0"
        xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
        jcr:primaryType="sling:OsgiConfig"
        include-filter.config.enabled="{Boolean}true"
        include-filter.config.path="/content"
        include-filter.config.resource-types="[my-app/components/content/highly-dynamic]"
        include-filter.config.include-type="SSI" 
        include-filter.config.add_comment="{Boolean}false"
        include-filter.config.selector="nocache"
        include-filter.config.ttl=""
        include-filter.config.required_header="Server-Agent=Communique-Dispatcher"
        include-filter.config.ignoreUrlParams="[]"
        include-filter.config.rewrite="{Boolean}true"
        />
    <!--
    * include-filter.config.include-type="SSI | ESI | JSI"
    * include-filter.config.ttl is # of seconds (requires AEM Dispatcher 4.1.11+)
    -->
    
  3. (Optional) Wiederholen Sie den letzten Schritt, damit Komponenten für gesperrte (anfängliche) Inhalte bearbeitbarer Vorlagen auch über SDI bereitgestellt werden können. Der Grund für die zusätzliche Konfiguration besteht darin, dass gesperrte Inhalte bearbeitbarer Vorlagen von /conf anstelle von /content bereitgestellt werden.

    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0"
        xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
        jcr:primaryType="sling:OsgiConfig"
        include-filter.config.enabled="{Boolean}true"
        include-filter.config.path="/conf"
        include-filter.config.resource-types="[my-app/components/content/highly-dynamic]"
        include-filter.config.include-type="SSI" 
        include-filter.config.add_comment="{Boolean}false"
        include-filter.config.selector="nocache"
        include-filter.config.ttl=""
        include-filter.config.required_header="Server-Agent=Communique-Dispatcher"
        include-filter.config.ignoreUrlParams="[]"
        include-filter.config.rewrite="{Boolean}true"
        />
    <!--
    * include-filter.config.include-type="SSI | ESI | JSI"
    * include-filter.config.ttl is # of seconds (requires AEM Dispatcher 4.1.11+)
    -->
    
  4. Aktualisieren Sie die Apache HTTPD Web server-Datei httpd.conf , um das Include-Modul zu aktivieren.

    $ sudo vi .../httpd.conf
    
    LoadModule include_module libexec/apache2/mod_include.so
    
  5. Aktualisieren Sie die vhost-Datei, um die Include-Anweisungen einzuhalten.

    $ sudo vi .../vhosts/aem-publish.local.conf
    
    <VirtualHost *:80>
    ...
       <Directory /Library/WebServer/docroot/publish>
          ...
          # Add Includes to enable SSI Includes used by Sling Dynamic Include
          Options FollowSymLinks Includes
    
          # Required to have dispatcher-handler process includes
          ModMimeUsePathInfo On
    
          # Set includes to process .html files
          AddOutputFilter INCLUDES .html
          ...
       </Directory>
    ...
    </VirtualHost>
    
  6. Aktualisieren Sie die Konfigurationsdatei "dispatcher.any", um (1) nocache Selektoren zu unterstützen und (2) die TTL-Unterstützung zu aktivieren.

    $ sudo vi .../conf/dispatcher.any
    
    /rules {
      ...
      /0009 {
        /glob "*.nocache.html*"
        /type "deny"
      } 
    }
    
    TIPP

    Wenn Sie die nachfolgende *-Regel in der glob *.nocache.html* -Regel deaktivieren, kann dies zu Problemen in Anforderungen für Unter-Ressourcen führen.

    /cache {
        ...
        /enableTTL "1"
    }
    
  7. Starten Sie Apache HTTP Web Server immer neu, nachdem Sie Änderungen an den Konfigurationsdateien oder dem dispatcher.any vorgenommen haben.

    $ sudo apachectl restart
    
HINWEIS

Wenn Sie Sling Dynamic Includes für die Bereitstellung von Edge-Side Includes (ESI) verwenden, achten Sie darauf, relevante Antwort-Header im Dispatcher-Cache zwischenzuspeichern. Mögliche Kopfzeilen sind:

  • "Cache-Control"
  • "content-disposition"
  • "Content-Type"
  • "Ablaufdatum"
  • "Last-Modified"
  • "ETag"
  • "X-content-type-options"
  • "Last-Modified"

Unterstützende Materialien

Auf dieser Seite