Configurar Sling Dynamic Include

Un vídeo de introducción a la instalación y el uso de Apache Sling Dynamic Include con AEM Dispatcher que se ejecuta en Apache HTTP Web Server.

NOTA

Asegúrese de que la versión más reciente de AEM Dispatcher esté instalada localmente.

  1. Descargue e instale el Sling Dynamic Include paquete.

  2. Configure Sling Dynamic Include a través de OSGi Configuration Factory en http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.Configuration.

    O bien, para agregar a una base de código AEM, cree el nodo sling:OsgiConfig apropiado en:

    <?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. (Opcional) Repita el último paso para permitir que los componentes del contenido bloqueado (inicial) de las plantillas editables también se proporcionen mediante SDI. El motivo de la configuración adicional es que el contenido bloqueado de las plantillas editables se suministra desde /conf en lugar de /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. Actualice el archivo Apache HTTPD Web server httpd.conf para habilitar el módulo Include.

    $ sudo vi .../httpd.conf
    
    LoadModule include_module libexec/apache2/mod_include.so
    
  5. Actualice el archivo vhost para respetar las directivas de inclusión.

    $ 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. Actualice el archivo de configuración dispatcher.any para que admita (1) selectores nocache y (2) habilite la compatibilidad con TTL.

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

    Dejar el * final en la regla *.nocache.html* global anterior, puede causar problemas en las solicitudes de subrecursos.

    /cache {
        ...
        /enableTTL "1"
    }
    
  7. Reinicie siempre Apache HTTP Web Server después de realizar cambios en sus archivos de configuración o en el dispatcher.any.

    $ sudo apachectl restart
    
NOTA

Si está utilizando Sling Dynamic Includes para servir las órdenes de inclusión del lado del perímetro (ESI), asegúrese de almacenar en caché los encabezados de respuesta relevantes en la caché del despachante. Los posibles encabezados son los siguientes:

  • "Cache-Control"
  • "Disposición de contenido"
  • "Content-Type"
  • "Caduca"
  • "Última modificación"
  • "ETag"
  • "X-Content-Type-Options"
  • "Última modificación"

Materiales de apoyo

En esta página