禁用AEM链接检查器

本文解决了Adobe Experience Manager关注的问题,即在CPU性能分析和分析线程转储期间,链接检查会影响性能。

描述 description

环境

Experience Manager 6.4

问题/症状

如果链接检查器配置为在链接断开时不执行任何操作,如何禁用外部链接检查器来验证链接? 在执行CPU性能分析和分析线程转储时,链接检查会影响性能,需要关闭。

背景: 每当在AEM中加载站点时,链接检查器都会自动检查所有内容页面中的嵌入链接,并将每个链接标记为有效或无效。

由于日志中有大量链接检查器警告,这可能会减慢实例或站点的速度。可以决定禁用某些链接检查。

注意:  不应在发布实例上启用链接检查器。

解决方法 resolution

如何禁用链接检查器或配置以在 AEM 中将链接标记为有效

  1. 禁用页面中的链接检查:

    • a标记 中添加x-cq-linkchecker="valid"参数,以确保链接始终被链接检查器标记为有效。

    • 或者,在 标记 链接检查器中使用x-cq-linkchecker="skip"甚至不会检查有效性。

  2. 通过 AEM Web控制台 完全禁用Link Checker:

    • 访问AEM Web控制台配置1。

    • 搜索 天CQ链接检查器转换器

    • 选中 禁用检查 框并单击“保存”。

  3. 禁用特定域的链接检查:

    • 访问AEM Web控制台配置1。

    • 搜索 天CQ链接检查器服务

    • 编辑 链接检查覆盖模式 参数。

示例1: system/

将不会检查以系统开头的任何外部链接。 通过单击+向此部分添加其他覆盖模式。

示例2

这会将所有链接标记为向前有效。

建议:删除/var/linkchecker下的所有节点,以停止Link Checker重新检查URL。

{1}http://[主机][端口] /system/console/configMgr

注意: 如果您使用service.special_link_patterns,则链接检查器仍会检查URL以查看其字符和结构是否有效。

以编程方式禁用外部链接检查

在页面组件jsp中添加此代码会阻止通过调用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);
%
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f