DocumentaciónAEMTutoriales de AEMTutoriales de AEM Foundation

Configurar Sling Dynamic Include

Última actualización: 5 de mayo de 2025
  • Se aplica a:
  • Experience Manager 6.4
  • Experience Manager 6.5
  • Temas:
  • API

Creado para:

  • Experimentado
  • Desarrollador

Un vídeo explicativo de cómo instalar y usar Apache Sling Dynamic Include con AEM Dispatcher en ejecución en Apache HTTP Web Server.

NOTA
Asegúrese de que la última versión de AEM Dispatcher esté instalada localmente.
  1. Descargue e instale el Sling Dynamic Include paquete.

  2. Configure Sling Dynamic Include mediante 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 de 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 se proporcionen también a través de SDI. El motivo de la configuración adicional es que el contenido bloqueado de las plantillas editables se proporciona desde /conf en lugar de desde /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 httpd.conf de Apache HTTPD Web server 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"
      }
    }
    
    TIP
    Si se deja el * final en la regla glob *.nocache.html* anterior, pueden producirse 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 dispatcher.any.

    $ sudo apachectl restart
    
NOTE
Si usa Sling Dynamic Includes para servir inclusiones del lado del perímetro (ESI), asegúrese de almacenar en caché los encabezados de respuesta relevantes en la caché de Dispatcher. Entre los posibles encabezados se incluyen los siguientes:
  • "Cache-Control"
  • "Content-Disposition"
  • "Content-Type"
  • "Caduca"
  • "Última modificación"
  • "ETag"
  • "X-Content-Type-Options"
  • "Última modificación"

Materiales de apoyo

  • Descargar paquete de inclusión dinámica de Sling
  • Documentación de inclusión dinámica de Apache Sling
recommendation-more-help
c92bdb17-1e49-4e76-bcdd-89e4f85f45e6