停用AEM連結檢查器

本文處理Adobe Experience Manager關注的問題,其中連結檢查會在CPU設定檔和分析執行緒傾印期間影響效能。

說明 description

環境

Experience Manager 6.4

問題/症狀

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

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

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

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

解決方法 resolution

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

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

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

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

  2. 透過 AEM網頁主控台 完全停用連結檢查器:

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

    • 搜尋 天CQ連結檢查器轉換器

    • 勾選 停用檢查 方塊,然後按一下[儲存]。

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

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

    • 搜尋 天CQ連結檢查器服務

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

範例1: system/

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

範例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