禁用AEM链接检查器
描述 description
环境
Experience Manager 6.4
问题/症状
如果将Link Checker配置为在链接断开时不执行任何操作。 在这种情况下,如何禁用外部链接检查器来验证链接? 在执行CPU性能分析并分析线程转储时,链接检查会影响性能,我们希望将其关闭。
背景: 每当在AEM中加载站点时,链接检查器都会自动检查所有内容页面中的嵌入链接,并将每个链接标记为有效或无效。
由于日志中有大量链接检查器警告,这可能会减慢实例或站点的速度。可以决定禁用某些链接检查。
注意:链接检查器不应在发布实例中启用。
解决方法 resolution
如何禁用链接检查器或配置以在 AEM 中将链接标记为有效
-
禁用页面中的链接检查:
-
添加
x-cq-linkchecker="valid"
中的参数 标记 以确保Link Checker始终将链接标记为有效。 -
(可选)使用
x-cq-linkchecker="skip"
在 标记 链接检查器甚至不会检查有效性。
-
-
完全禁用链接检查器(通过 AEM Web控制台:
-
访问AEM Web控制台配置1。
-
搜索 Day CQ链接检查器转换器.
-
查看 禁用检查 框并单击“保存”。
-
-
禁用特定域的链接检查:
-
访问AEM Web控制台配置1。
-
搜索 Day CQ链接检查器服务.
-
编辑 链接检查覆盖模式 参数。
-
示例1:system/
任何以系统开头的外部链接都不会被检查。 通过单击+向此部分添加其他覆盖模式。
示例 2:
这会在以后将所有链接标记为有效。
推荐:删除/var/linkchecker下的所有节点,以停止Link Checker重新检查URL。
{1}http://[
主机]
:[
端口]
/system/console/configMgr
注意: 如果使用service.special_link_patterns ,则Link Checker仍会检查URL以查看其字符和结构是否有效。
以编程方式禁用外部链接检查
将此代码添加到页面组件jsp中,可阻止通过调用style="background:transparent; color:#0e101a; margin-bottom:0pt; margin-top:0pt"来完成外部链接检查>
LinkCheckerSettings.fromRequest(slingRequest).setIgnoreExternals(true
. 在大多数情况下,您只能在发布实例上实施它,而不是在创作实例上实施。 下面是一些要演示的代码:
`<` %org.apache.sling.runmode.RunMode runmode = sling.getService(org.apache.sling.runmode.RunMode.class);
String`[` `]` runmodes = runmode.getCurrentRunModes();
boolean isPublish = false;
String `[` `]` expectedRunModes = {"publish"};
if(runmode.isActive(expectedRunModes)) {
isPublish = true;
}
if(isPublish) {
LinkCheckerSettings s = LinkCheckerSettings.fromRequest(slingRequest);
s.setIgnoreExternals(true);
}
%`>`
如果只想禁用特定组件或部分页面的链接检查,则可以使用以下代码重新启用它:
`<` %
s.setIgnoreExternals(false);
%