Configura Sling Dynamic Include

Procedura video per l'installazione e l'utilizzo di Apache Sling Dynamic Include con AEM Dispatcher in esecuzione su Apache HTTP Web Server.

NOTE
Verificare che la versione più recente del Dispatcher AEM sia installata localmente.
  1. Scarica e installa il Sling Dynamic Include bundle.

  2. Configura Sling Dynamic Include tramite OSGi Configuration Factory in http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.Configuration.

    In alternativa, per aggiungere a una base di codice AEM, crea il nodo sling:OsgiConfig appropriato in:

    code language-xml
    <?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. (Facoltativo) Ripetere l'ultimo passaggio per consentire che i componenti in contenuto bloccato (iniziale) di modelli modificabili vengano serviti anche tramite SDI. Il motivo della configurazione aggiuntiva è che il contenuto bloccato dei modelli modificabili viene distribuito da /conf anziché da /content.

    code language-xml
    <?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. Aggiorna il file httpd.conf di Apache HTTPD Web server per abilitare il modulo Include.

    code language-shell
    $ sudo vi .../httpd.conf
    
    code language-shell
    LoadModule include_module libexec/apache2/mod_include.so
    
  5. Aggiorna il file vhost per rispettare le direttive di inclusione.

    code language-shell
    $ sudo vi .../vhosts/aem-publish.local.conf
    
    code language-shell
    <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. Aggiorna il file di configurazione dispatcher.any per supportare (1) nocache selettori e (2) abilitare il supporto TTL.

    code language-shell
    $ sudo vi .../conf/dispatcher.any
    
    code language-shell
    /rules {
      ...
      /0009 {
        /glob "*.nocache.html*"
        /type "deny"
      }
    }
    
    note tip
    TIP
    Se si lascia inattivo * finale nella regola glob *.nocache.html* precedente, si potrebbero verificare problemi nelle richieste di risorse secondarie.
    code language-shell
    /cache {
        ...
        /enableTTL "1"
    }
    
  7. Riavvia sempre Apache HTTP Web Server dopo aver apportato modifiche ai file di configurazione o a dispatcher.any.

    code language-shell
    $ sudo apachectl restart
    
NOTE
Se utilizzi Sling Dynamic Includes per il server delle inclusioni lato perimetro (ESI), assicurati di memorizzare nella cache le intestazioni di risposta rilevanti. Le intestazioni possibili includono:
  • "Cache-Control"
  • "Content-Disposition"
  • "Content-Type"
  • "Scade"
  • "Ultima modifica"
  • "ETag"
  • "X-Content-Type-Options"
  • "Ultima modifica"

Materiali di supporto

recommendation-more-help
c92bdb17-1e49-4e76-bcdd-89e4f85f45e6