Aem 重写Adobe CQ图像src属性

Aem 重写Adobe CQ图像src属性,aem,sling,Aem,Sling,在AEM中,页面和图像等内容包含'/content/'前缀。我们可以通过链接检查器Transformer配置和resourcesolver.map()方法重写这些url。正在为HTML元素重写URL,但两次尝试都无法解决此问题 有什么方法可以做到这一点吗?即使重写器和链接检查器变压器不起作用。通过使用Transformer和TransformerFactory接口,我使用了一个自定义链接重写器。我的代码基于的示例。我得出了这样的结论: @Component( metatype = tr

在AEM中,页面和图像等内容包含
'/content/'
前缀。我们可以通过链接检查器Transformer配置和
resourcesolver.map()
方法重写这些url。正在为HTML元素重写URL
,但两次尝试都无法解决此问题


有什么方法可以做到这一点吗?

即使
重写器和
链接检查器变压器
不起作用。通过使用
Transformer
TransformerFactory
接口,我使用了一个自定义链接重写器。我的代码基于的示例。我得出了这样的结论:

@Component(
     metatype = true,
     label = "Image Link Rewriter",
     description = "Maps the <img> elements src attributes"
)
@Service(value = TransformerFactory.class)
@Property(value = "global", propertyPrivate = true)
public class ImageLinkRewriter implements Transformer, TransformerFactory {

    // some variables

    public CustomLinkTransformer() {  }

    @Override
    public void init(ProcessingContext context,
                     ProcessingComponentConfiguration config) throws IOException {
        // initializations here
    }

    @Override
    public final Transformer createTransformer() {
        return new CustomLinkTransformer();
    }

    @Override
    public void startElement(String uri, String localName, 
                             String qName, Attributes atts) throws SAXException {
        if ("img".equalsIgnoreCase(localName)) {
            contentHandler.startElement(uri, localName, qName, rewriteImageLink(atts));
        }
    }

    private Attributes rewriteImageLink(Attributes attrs) {
        String attrName = "src";
        AttributesImpl result = new AttributesImpl(attrs);

        String link = attrs.getValue(attrName);
        String mappedLink = resource.getResourceResolver().map(request, link);

        result.setValue(result.getIndex(attrName), mappedLink);

        return result;
    }

}
@组件(
元类型=真,
label=“图像链接重写器”,
description=“映射
希望这对其他人有所帮助。以下是一些参考资料:


您在/apps/XXX/config/rewriter中配置了重写器吗?@santiagozky不幸的是,没有。我将阅读如何通过它配置重写器。@santiagozky我尝试过它,但是对于任何来到这里的人,
元素没有任何变化:此答案中的源代码有点混乱。有关完整的工作示例,请参阅此要点我创建了: