安装和使用的视频演示 Apache Sling Dynamic Include with AEM Dispatcher 运行 Apache HTTP Web Server.
确保本地安装了最新版本的AEM Dispatcher。
下载并安装 Sling Dynamic Include 捆束.
配置 Sling Dynamic Include 通过 OSGi Configuration Factory at http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.配置.
或者,要添加到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 也是。 进行额外配置的原因是可编辑模板的锁定内容是从 /conf
而不是 /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+)
-->
更新 Apache HTTPD Web server's httpd.conf
文件以启用 Include 模块。
$ sudo vi .../httpd.conf
LoadModule include_module libexec/apache2/mod_include.so
更新 vhost 文件以遵循include指令。
$ 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>
更新dispatcher.any配置文件以支持(1) nocache
选择器和(2)启用TTL支持。
$ sudo vi .../conf/dispatcher.any
/rules {
...
/0009 {
/glob "*.nocache.html*"
/type "deny"
}
}
离开尾随 *
在地球里 *.nocache.html*
规则,可能 子资源请求中的问题.
/cache {
...
/enableTTL "1"
}
始终重新启动 Apache HTTP Web Server 更改其配置文件或 dispatcher.any
.
$ sudo apachectl restart
如果您使用 Sling Dynamic Includes 对于提供边缘端包含(ESI),请确保缓存相关 dispatcher缓存中的响应标头. 可能的标头包括: