DocumentazioneAEMTutorial su AEMTutorial su AEM Foundation

Configura Sling Dynamic Include

Ultimo aggiornamento: 5 maggio 2025
  • Si applica a:
  • Experience Manager 6.4
  • Experience Manager 6.5
  • Argomenti:
  • API

Creato per:

  • Esperto
  • Sviluppatore

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

NOTA
Assicurati che la versione più recente di AEM Dispatcher 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 di AEM, crea il nodo sling:OsgiConfig appropriato in:

    <?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.

    <?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.

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

    $ 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. Aggiorna il file di configurazione dispatcher.any per supportare (1) nocache selettori e (2) abilitare il supporto TTL.

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

    $ 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

  • Scarica il bundle Sling Dynamic Include
  • Documentazione di Apache Sling Dynamic Include
recommendation-more-help
c92bdb17-1e49-4e76-bcdd-89e4f85f45e6