Sling Dynamic Include の設定

Apache HTTP Web Server 上で動作する AEM Dispatcher と Apache Sling Dynamic Include をインストールし、使用するための手順を紹介するビデオです。

NOTE
最新バージョンの AEM Dispatcher がローカルにインストールされていることを確認します。
  1. Sling Dynamic Include バンドルをダウンロードしてインストールします。

  2. http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.Configuration で OSGi Configuration Factory を介して Sling Dynamic Include を設定します。

    または、AEM コードベースに追加するには、次の場所に適切な sling:OsgiConfig ノードを作成します。

    code language-xml
    <?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. (オプション)最後の手順を繰り返して、編集可能なテンプレートのロックされた(初期)コンテンツのコンポーネントを、SDI 経由でも提供できるようにします。追加設定の理由は、編集可能なテンプレートのロックされたコンテンツが、/content ではなく /conf から提供されるためです。

    code language-xml
    <?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. Apache HTTPD Web server の httpd.conf ファイルを更新して Include モジュールを有効にします。

    code language-shell
    $ sudo vi .../httpd.conf
    
    code language-shell
    LoadModule include_module libexec/apache2/mod_include.so
    
  5. include ディレクティブを尊重するように vhost ファイルを更新します。

    code language-shell
    $ sudo vi .../vhosts/aem-publish.local.conf
    
    code language-shell
    <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. (1)nocache セレクターをサポートし、(2)TTL サポートを有効にするように、dispatcher.any 構成ファイルを更新します。

    code language-shell
    $ sudo vi .../conf/dispatcher.any
    
    code language-shell
    /rules {
      ...
      /0009 {
        /glob "*.nocache.html*"
        /type "deny"
      }
    }
    
    note tip
    TIP
    上記の glob *.nocache.html* ルールで末尾の * を省略すると、サブリソースのリクエストで問題が発生する可能性があります。
    code language-shell
    /cache {
        ...
        /enableTTL "1"
    }
    
  7. 構成ファイルまたは dispatcher.any を変更した後は、必ず Apache HTTP Web Server を再起動してください。

    code language-shell
    $ sudo apachectl restart
    
NOTE
エッジサイドインクルード(ESI)を提供するために Sling Dynamic Includes を使用している場合は、関連するレスポンスヘッダーをディスパッチャーキャッシュにキャッシュしてください。ヘッダーの例を次に示します。
  • "Cache-Control"
  • "Content-Disposition"
  • "Content-Type"
  • "有効期限"
  • "Last-Modified"
  • "ETag"
  • "X-Content-Type-Options"
  • "Last-Modified"

サポート資料

recommendation-more-help
c92bdb17-1e49-4e76-bcdd-89e4f85f45e6