禁用AEM链接检查器
本文解决了Adobe Experience Manager关注的问题,即在CPU性能分析和分析线程转储期间,链接检查会影响性能。
描述 description
环境
Experience Manager 6.4
问题/症状
如果链接检查器配置为在链接断开时不执行任何操作,如何禁用外部链接检查器来验证链接? 在执行CPU性能分析和分析线程转储时,链接检查会影响性能,需要关闭。
背景: 每当在AEM中加载站点时,链接检查器都会自动检查所有内容页面中的嵌入链接,并将每个链接标记为有效或无效。
由于日志中有大量链接检查器警告,这可能会减慢实例或站点的速度。可以决定禁用某些链接检查。
注意: 不应在发布实例上启用链接检查器。
解决方法 resolution
如何禁用链接检查器或配置以在 AEM 中将链接标记为有效
-
禁用页面中的链接检查:
-
在 a标记 中添加
x-cq-linkchecker="valid"参数,以确保链接始终被链接检查器标记为有效。 -
或者,在 标记 链接检查器中使用
x-cq-linkchecker="skip"甚至不会检查有效性。
-
-
通过 AEM Web控制台 完全禁用Link Checker:
-
访问AEM Web控制台配置1。
-
搜索 天CQ链接检查器转换器。
-
选中 禁用检查 框并单击“保存”。
-
-
禁用特定域的链接检查:
-
访问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);
%