绕过LinkChecker中特殊字符的URL验证的步骤
了解如何使用属性保持链接完整,从而绕过LinkChecker中特殊字符的URL验证。
描述 description
环境
- AEM as a Cloud Service
- AEM 6.5.17
问题/症状
呈现包含对URL无效的特殊字符的链接需要自定义组件。 即使LinkChecker配置中的 Disable Checking 选项设置为true,LinkChecker仍会验证链接并从渲染的HTML中删除链接。
例如:
包含字符 的链接 对URL无效的{”和“} 。
<span><a href="{testURL}">TEST URL</a></span>
LinkChecker将从渲染的HTML中删除链接
<span>>TEST URL</span>
作为此验证过程的结果,URISyntaxException 随后记录在error.log中。
23.01.2024 12:43:34.500 *WARN* [ 000.000.000.000 [ 1705981414300] GET /content/wknd/language-masters/en/test.html HTTP/1.1] com.day.cq.rewriter.linkchecker.impl.LinkCheckerImpl Ignoring malformed URI: java.net.URISyntaxException: Illegal character in path at index 0: {testURL}
解决方法 resolution
将x-cq-linkchecker="skip"属性添加到相应HTL(HTML模板语言)组件中的链接。 此属性指示LinkChecker完全绕过URL验证。
例如:
如果链接使用URL中无效的字符 {”和“}”。< span><a x-cq-linkchecker="skip" href="{testURL}">TEST URL</a></span>
它(链接)保留在渲染的HTML中。< span><a x-cq-linkchecker="skip" href="{testURL}">TEST URL</a></span>