停用AEM連結檢查器

本文會說明在CPU設定檔和分析執行緒傾印期間,連結檢查會影響效能的AEM問題。

說明 description

環境

Experience Manager 6.4

問題/症狀

如果連結檢查器設定為當連結中斷時不會採取任何動作,如何停用外部連結檢查器來驗證連結? 在執行CPU效能分析及分析執行緒傾印時,連結檢查會影響效能,必須關閉。

背景:   每當在AEM中載入網站時,連結檢查器都會自動檢查所有內容頁面中的內嵌連結,並將每個連結標籤為有效或無效。

由於紀錄中有大量連結檢查器警告,這可能會減慢執行個體或網站的速度。 可以決定停用某些連結檢查。

注意:不應在發佈執行個體上啟用連結檢查器。

解決方法 resolution

如何停用連結檢查器或設定以在 AEM 中將連結標記為有效

  1. 停用頁面中的連結檢查:

    • 新增 x-cq-linkchecker="valid" 中的引數 標籤 以確保連結檢查器一律將連結標籤為有效。

    • 選擇性使用 x-cq-linkchecker="skip"標籤 連結檢查器甚至不會檢查有效性。

  2. 透過以下方式完全停用連結檢查器: AEM Web Console

    • 存取AEM Web主控台組態1。

    • 搜尋 Day CQ連結檢查器轉換器.

    • 檢查 停用檢查 方塊,然後按一下「儲存」。

  3. 停用特定網域的連結檢查:

    • 存取AEM Web主控台組態1。

    • 搜尋 Day CQ連結檢查器服務.

    • 編輯 連結檢查覆寫模式 引數。

範例1:系統/

將不會檢查任何以系統開頭的外部連結。 按一下+,新增其他覆寫模式至此區段。

範例2

這會在日後將所有連結標籤為有效。

建議:刪除/var/linkchecker下的所有節點,以停止連結檢查器重新檢查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