AEM 6.x:如何临时/以编程方式禁用链接检查器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (44)

所以我有一个Sling servlet从另一个API读取数据(我们称之为APIX),APIX为我提供JSON格式的数据。

当我调试我的代码时,看起来我从APIX得到的响应是完好无损的。

当我将从APIX获得的JSON传递给浏览器时,我可以看到AEM“链接检查”了JSON中的所有链接。我不希望AEM对我的数据做任何事情。

基于这个Adobe页面,我在代码中添加了这些行:

protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
  LinkCheckerSettings linkCheckerSettings = LinkCheckerSettings.fromRequest(request);
  linkCheckerSettings.setIgnoreExternals(true);

  //body of the code here

  response.setCharacterEncoding("UTF-8");
  response.setContentType("application/json;charset=UTF-8");

  printWriter.write(jsonResponse);

  linkCheckerSettings.setIgnoreExternals(false);
}

没有效果。我仍然可以看到这些字符串

<img src="/libs/cq/linkchecker/resources/linkcheck_o.gif" alt="invalid link: _blank\\" title="invalid link: _blank\\" border="0">

我该怎么做?

提问于
用户回答回答于

我不认为建议在全局范围内禁用LinkChecker。还有几种方法可以实现这一点,并将限制仅限于某些用例 -

  1. 如果链接中包含特殊的前缀一样tel:mailto:等等, -你必须将它们添加到Day CQ Link Checker Service/system/console/configMgr禁用和linkchecker这些链接。
  2. 将此参数添加x-cq-linkchecker="valid"<img>标记以确保链接在AEM中被标记为有效 - 即使AEM认为它们无效。
  3. 也可以使用x-cq-linkchecker="skip"跳过此元素的链接检查器验证。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励