禁用AEM链接检查器

描述 description

环境

Experience Manager 6.4

问题/症状

如果将Link Checker配置为在链接断开时不执行任何操作。 在这种情况下,如何禁用外部链接检查器来验证链接? 在执行CPU性能分析并分析线程转储时,链接检查会影响性能,我们希望将其关闭。

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

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

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

解决方法 resolution

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

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

    • 添加 x-cq-linkchecker="valid" 中的参数 标记 以确保Link Checker始终将链接标记为有效。

    • (可选)使用 x-cq-linkchecker="skip"标记 链接检查器甚至不会检查有效性。

  2. 完全禁用链接检查器(通过 AEM Web控制台

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

    • 搜索 Day CQ链接检查器转换器.

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

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

    • 访问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);
%
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f