Adobe AEM相对链接

时间:2016-01-21 15:24:58

标签: aem

如何在文本编辑器组件中进行相对链接?默认情况下,当我使用相对链接到外部页面时,Adobe AEM不喜欢。它将它们剥离并显示断开的链接符号。

4 个答案:

答案 0 :(得分:5)

我强烈建议您取消选中 Day CQ Link Checker Transformer 中的禁用检查
请注意,确保所有链接均有效是您的责任:
完全禁用所有链接检查。所有链接都被视为有效。

这是您想要与团队核实的内容(Devs,TA ...)。它可能适用于您的本地环境,它将在QA,UAT和PROD中失败,因为未选中此选项 禁用链接检查器可能不是一个好主意,因为内容作者可能会添加损坏的链接,如果在测试和回归测试期间未选择此链接,则会破坏整个站点的用户导航。
关于路径,相对路径是您所处环境中的路径。例如,
/content/dam/geometrixx/banners/banner-mono.png
是一个相对路径,但Stack Overflow的路径在您的环境之外,因此是外部的。为了有效,您需要提供完整的网址,包括 http https ftp ftps < / strong>等等。有效的外部URL将是:
http://www.stackoverflow.com
有关网址的更多信息,请访问here

答案 1 :(得分:1)

虽然禁用链接检查器会起作用,但我不确定您是如何通过相对链接引用外部网站的。相对链接本质上属于同一域。你能举个例子说明你的意思吗?

禁用链接检查程序的另一个问题是生产部署可能会打开链接检查程序。在这种情况下,您的代码将再次中断。你可能不希望你的客户/老板/对此感到不安。

可以使用linkchecker使相对链接正常工作。你能发布一些示例链接吗?我可以帮助你让事情正常运作。

答案 2 :(得分:0)

如果您的域中的网址(路径)不是AEM提供的,则此问题非常常见。这可以是Apache直接提供的文件(例如robots.txt),创建动态重定向的Servlet(例如语言切换器)或其他应用程序(例如/ shop下的网店)。

首先解决方案是将链接检查器的单个链接标记为有效。因此,您可以将以下属性添加到链接标记。

  • x-cq-linkchecker="valid" - 链接被标记为有效,没有任何内容 检查
  • x-cq-linkchecker="skip" - 链接会忽略链接 检查器,并保持原样

e.g。 <a href="/shop/basket" x-cq-linkchecker="valid">Shopping Basket</a>

第二种解决方案是在“Day CQ Link Checker Service”的OSGi配置中配置特殊威胁链路模式。如果您在同一个域中有第二个应用程序,则可以指定与此第二个应用程序的链接匹配的正则表达式模式。用户“链接检查覆盖模式”(未选中,但已重写)或“特殊链接模式”(未选中且未重写)。

示例配置仅验证了与/content/*的链接。与^/content/.*$不匹配的链接被视为有效:

    <?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/).*$]"
    />

答案 3 :(得分:-1)

修复了/ system / console / configMgr中的问题#&gt; <日CQ链接检验变压器>检查&#34;禁用检查&#34;框。

相对路径现在有效。