我有sling mappings设置,重写外部URL的传出路径.这个重写的一个例子:
/content/www-sitename/home.html将被重写为http://www.sitename.com/home.html
我还配置了LinkCheckerTransformerFactory: linkcheckertransformer.rewriteElements=["a:href","area:href","form:action","link:href","meta:content"]
页面组件上的一些HTML:
<head>
<link rel="canonical" href="/content/www-sitename/home.html" />
<meta name="canonical" content="/content/www-sitename/home.html" />
</head>
Run Code Online (Sandbox Code Playgroud)
访问时,只有链接:href被重写,meta:content不变:
<head>
<link rel="canonical" href="http://www.sitename.com/home.html" />
<meta name="canonical" content="/content/www-sitename/home.html" />
</head>
Run Code Online (Sandbox Code Playgroud)
值得注意的是,链接:href在配置linkcheckertransformer.rewriteElements包含它之前没有被重写.为什么此更改适用于link:href,而不适用于meta:content.除了创建自定义重写过滤器之外,还可以采取哪些措施来获取要重写的meta:content属性中的链接?
书呆子答案是正确的,默认情况下,负责解析HTML(HTMLParser的)内部吊带机制仅支持以下标签:a,area,form,base,link,script,body,所以即使你添加meta:content到配置和linkchecker,CQ将无法识别<meta>的标签,该标签需要处理.
为了重新配置htmlparser,创建一个名为节点generator-htmlparser下/libs/cq/config/rewriter/default具有以下特性:
A,AREA,FORM,BASE,LINK,SCRIPT,BODY,META]该includeTags属性应该是多值的,因此您可以在将来添加其他标记.
如果您不想覆盖下面的内容/libs,请创建自己的重写器配置:
/libs/cq/config/rewriter/default及其子女/apps/YOURAPP/config/rewriter/my-rewriter.order在my-rewriterto 上设置属性1.generator-htmlparser在my-rewriter上面创建.| 归档时间: |
|
| 查看次数: |
1069 次 |
| 最近记录: |