Configurar Sling Dynamic Include

Uma apresentação de vídeo sobre como instalar e usar Apache Sling Dynamic Include com AEM Dispatcher em execução em Apache HTTP Web Server.

OBSERVAÇÃO

Verifique se a versão mais recente do AEM Dispatcher está instalada localmente.

  1. Baixe e instale o Sling Dynamic Include pacote.

  2. Configure Sling Dynamic Include através do OSGi Configuration Factory em http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.Configuration.

    Ou, para adicionar a uma base de código AEM, crie o nó apropriado sling:OsgiConfig em:

    <?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 a última etapa para permitir que os componentes no conteúdo bloqueado (inicial) de modelos editáveis também sejam veiculados via SDI. A razão para a configuração adicional é que o conteúdo bloqueado dos modelos editáveis é veiculado a partir de /conf em vez 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. Atualize o arquivo httpd.conf de Apache HTTPD Web server para habilitar o módulo Include.

    $ sudo vi .../httpd.conf
    
    LoadModule include_module libexec/apache2/mod_include.so
    
  5. Atualize o arquivo vhost para respeitar as diretivas de inclusão.

    $ 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. Atualize o arquivo de configuração dispatcher.any para suportar (1) nocache seletores e (2) habilitar o suporte ao TTL.

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

    Deixar o * à direita na regra glob *.nocache.html* acima, pode resultar em problemas em solicitações de subrecursos.

    /cache {
        ...
        /enableTTL "1"
    }
    
  7. Sempre reinicie Apache HTTP Web Server após fazer alterações nos arquivos de configuração ou dispatcher.any.

    $ sudo apachectl restart
    
OBSERVAÇÃO

Se você estiver usando Sling Dynamic Includes para fornecer inclusões do lado da borda (ESI), certifique-se de armazenar em cache os cabeçalhos de resposta relevantes no cache do dispatcher. Os cabeçalhos possíveis incluem:

  • "Cache-Control"
  • "Disposição de conteúdo"
  • "Tipo de conteúdo"
  • "Expira em"
  • "Última modificação"
  • "ETag"
  • "X-Content-Type-Options"
  • "Última modificação"

Materiais de apoio

Nesta página