Apache HTTP Web Server 上で動作する AEM Dispatcher と Apache Sling Dynamic Include をインストールし、使用するための手順を紹介するビデオです。
最新バージョンの AEM Dispatcher がローカルにインストールされていることを確認します。
Sling Dynamic Include バンドルをダウンロードしてインストールします。
http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.Configuration で OSGi Configuration Factory を介して Sling Dynamic Include を設定します。
または、AEM コードベースに追加するには、次の場所に適切な sling:OsgiConfig ノードを作成します。
<?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+)
-->
(オプション)最後の手順を繰り返して、編集可能なテンプレートのロックされた(初期)コンテンツ のコンポーネントを、SDI 経由でも提供できるようにします。追加設定の理由は、編集可能なテンプレートのロックされたコンテンツが、/content
ではなく /conf
から提供されるためです。
<?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+)
-->
Apache HTTPD Web server の httpd.conf
ファイルを更新して Include モジュールを有効にします。
$ sudo vi .../httpd.conf
LoadModule include_module libexec/apache2/mod_include.so
include ディレクティブを尊重するように vhost ファイルを更新します。
$ 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>
(1)nocache
セレクターをサポートし、(2)TTL サポートを有効にするように、dispatcher.any 構成ファイルを更新します。
$ sudo vi .../conf/dispatcher.any
/rules {
...
/0009 {
/glob "*.nocache.html*"
/type "deny"
}
}
上記の glob *.nocache.html*
ルールで末尾の *
を省略すると、サブリソースのリクエストで問題が発生する可能性があります。
/cache {
...
/enableTTL "1"
}
構成ファイルまたは dispatcher.any
を変更した後は、必ず Apache HTTP Web Server を再起動してください。
$ sudo apachectl restart
エッジサイドインクルード(ESI)を提供するために Sling Dynamic Includes を使用している場合は、関連するレスポンスヘッダーをディスパッチャーキャッシュ にキャッシュしてください。ヘッダーの例を次に示します。