Imposta Sling Dynamic Include

Video introduttivo sull’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 all'indirizzo http://<host>:<port>/system/console/configMgr/org.apache.sling.dinamicinclude.Configuration.

    Oppure, per aggiungere a una base di codice AEM, crea il nodo appropriato sling:OsgiConfig 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?lang=it"
        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) Ripeti l’ultimo passaggio per consentire la distribuzione dei componenti anche tramite SDI sul contenuto bloccato (iniziale) dei modelli modificabili🔗. La ragione della configurazione aggiuntiva è che il contenuto bloccato dei modelli modificabili viene servito da /conf invece di /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?lang=it"
        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 i selettori (1) nocache e (2) abilita il supporto TTL.

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

    Lasciando fuori la coda * nella regola glob *.nocache.html* di cui sopra, può causare problemi nelle richieste per risorse secondarie.

    /cache {
        ...
        /enableTTL "1"
    }
    
  7. Riavvia sempre Apache HTTP Web Server dopo aver apportato modifiche ai relativi file di configurazione o al dispatcher.any.

    $ sudo apachectl restart
    
NOTA

Se utilizzi Sling Dynamic Includes per il server edge-side include (ESI), assicurati di memorizzare nella cache le intestazioni di risposta pertinenti nella cache del dispatcher. Le intestazioni possibili includono:

  • "Cache-Control"
  • "Content-Disposition"
  • "Content-Type"
  • "Scade"
  • "Ultima modifica"
  • "ETag"
  • "X-Content-Type-Options"
  • "Ultima modifica"

Materiali di supporto

In questa pagina

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now