Configuration Sling Dynamic Include

Présentation vidéo de l’installation et de l’utilisation de Apache Sling Dynamic Include avec AEM Dispatcher en cours d’exécution sur Apache HTTP Web Server.

REMARQUE

Assurez-vous que la dernière version d’AEM Dispatcher est installée localement.

  1. Téléchargez et installez le Sling Dynamic Include bundle.

  2. Configurez Sling Dynamic Include via OSGi Configuration Factory à l’adresse http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.Configuration.

    Ou, pour ajouter à une base de code AEM, créez le noeud sling:OsgiConfig approprié à l’adresse :

    <?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. (Facultatif) Répétez la dernière étape pour permettre aux composants sur le contenu verrouillé (initial) des modèles modifiables d’être également diffusés via SDI. La raison de la configuration supplémentaire est que le contenu verrouillé des modèles modifiables est diffusé à partir de /conf au lieu 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. Mettez à jour le fichier httpd.conf de Apache HTTPD Web server pour activer le module Include.

    $ sudo vi .../httpd.conf
    
    LoadModule include_module libexec/apache2/mod_include.so
    
  5. Mettez à jour le fichier vhost pour respecter les directives d’inclusion.

    $ 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. Mettez à jour le fichier de configuration dispatcher.any pour prendre en charge (1) les sélecteurs nocache et (2) activer la prise en charge TTL.

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

    Si vous laissez la balise * de fin dans la règle *.nocache.html* glob ci-dessus, des problèmes peuvent se produire dans les demandes de sous-ressources.

    /cache {
        ...
        /enableTTL "1"
    }
    
  7. Redémarrez toujours Apache HTTP Web Server après avoir apporté des modifications à ses fichiers de configuration ou à dispatcher.any.

    $ sudo apachectl restart
    
REMARQUE

Si vous utilisez Sling Dynamic Includes pour diffuser des inclusions côté serveur (ESI), assurez-vous de mettre en cache les en-têtes de réponse appropriés dans le cache du Dispatcher. Les en-têtes possibles sont les suivants :

  • "Cache-Control"
  • "Content-Disposition"
  • "Content-Type"
  • "Date d’expiration"
  • "Last-Modified"
  • "ETag"
  • "X-Content-Type-Options"
  • "Last-Modified"

Documents annexes

Sur cette page