2016-01-21 70 views
-1

如何在文本編輯器組件中進行相對鏈接?默認情況下,Adobe AEM不喜歡使用外部頁面的相對鏈接。它將它們去掉並顯示斷開的鏈接符號。Adob​​e AEM相關鏈接

+0

你能否提供更多的信息,像例如什麼聯繫你寫什麼層次是(有此鏈接,以及頁面的路徑它指向頁面的路徑)? –

+0

外部頁面的相關鏈接?如何可能?如果它是一個外部頁面,那麼你總是需要在你的鏈接中添加域名,或者我錯過了什麼? –

回答

-1

解決了我在/ system/console/configMgr#>日CQ鏈接檢查變壓器問題>檢查「禁用檢查」框。

相對路徑現在工作。

+1

這不是一個解決方案。您只是禁用與您的問題衝突的工作驗證。除非我誤解,否則外部鏈接(與其他域的鏈接)決不可能是相對的。 –

5

我強烈建議您取消選中禁用檢查日CQ鏈接檢查變壓器
請注意,您有責任確保所有鏈接均有效:
完全禁用所有鏈接檢查。所有鏈接都被視爲有效。

這是你想要與你的團隊(Devs,TA ......)覈對的東西。它可能適用於您的本地環境,並且由於未選中此選項,因此它將在QA,UAT和PROD中失敗。
禁用鏈接檢查器可能不是一個好主意,因爲內容作者可能會添加斷開的鏈接,如果在測試和迴歸測試過程中沒有選擇它,它會在整個站點中斷用戶導航。
關於路徑,相對路徑是那些你所在的環境中。例如,
/content/dam/geometrixx/banners/banner-mono.png
是相對路徑,但是路徑Stack Overflow是你環境之外,因此是外部的。爲了有效,您需要提供完整的URL,包括方案,無論是HTTPHTTPSFTPFTPS等。有效的外部URL將爲:
http://www.stackoverflow.com
有關URL的更多信息,請參見here


1

雖然禁用鏈接檢查會的工作,我不知道你是如何通過相對鏈接引用外部網站。相對鏈接根據其性質在同一個域中。你能給我們一個你的意思嗎?

禁用鏈接檢查器的其他問題是生產部署可能會打開鏈接檢查器。在這種情況下,你的代碼會再次中斷。你可能不希望你的客戶/老闆/不管那樣不安。

相關鏈接可以使用linkchecker正常工作。你可以發佈一些例子鏈接?我可以幫助你使事情正常工作。

0

如果您的網域中有URL(路徑)不受AEM保護,則此問題非常普遍。這可以是由Apache(例如robots.txt),創建動態重定向(例如語言切換器)或另一個應用程序(例如在/ shop下的網上商店)的Servlet直接提供的文件。

第一種解決方案是將鏈接檢查器的單個鏈接標記爲有效。因此,您可以將以下屬性添加到鏈接標記。

  • x-cq-linkchecker="valid" - 鏈路被標記爲有效,而沒有任何 檢查
  • x-cq-linkchecker="skip" - 鏈接由鏈接 檢查器忽略,並且仍保持原樣

例如<a href="/shop/basket" x-cq-linkchecker="valid">Shopping Basket</a>

第二種解決方案是在「Day CQ鏈接檢查器服務」的OSGi配置中配置特殊連接模式。如果您在同一個域中有第二個應用程序,那麼您可以指定與此第二個應用程序的鏈接匹配的正則表達式模式。用戶「鏈接檢查覆蓋樣式」(未選中,但是重寫)或「特殊鏈接樣式」(未選中並且未被重寫)。

示例配置只有鏈接到/content/*驗證。這不符合^/content/.*$鏈接threated爲有效:

<?xml version="1.0" encoding="UTF-8"?> 
    <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
     jcr:primaryType="sling:OsgiConfig" 
     service.special_link_prefix="[javascript:,data:,mailto:,#,&lt;!--,${,tel:]" 
     service.check_override_patterns="[^system/,^(?!/content/).*$]" 
    />