0

我有页面

getRootRequestMapperAsCompound().add(new NoVersionMapper("/card/${cardId}", CardPage.class));. 

在这个页面上有 TinyMCE4 编辑器。尝试使用相对路径“images/1.jpg”加载图像我添加了资源映射以允许成功加载图像。

mountResource("/card/image/${imageId}", imageResourceReference);

在开发模式下一切正常,图像被加载到编辑器中,但在部署模式下,页面被调用了两次,第一次调用 /card/1,第二次调用 /card/image/1.jpg。

如何为部署模式正确挂载资源?

UPDATE貌似找到了原因

public int getCompatibilityScore(Request request)
{
    return 0; // pages always have priority over resources
}

,但接下来的问题是:“为什么它在开发模式下运行良好”?

更新 2我没有找到更好的解决方案,然后添加我自己的资源映射器并覆盖 getCompatibilityScore()

public class ImageResourceMapper extends ResourceMapper {

    private String[] mountSegments;

    public ImageResourceMapper(String path, ResourceReference resourceReference) {
        super(path, resourceReference);
        mountSegments = getMountSegments(path);
    }

    public ImageResourceMapper(String path, ResourceReference resourceReference, IPageParametersEncoder encoder) {
        super(path, resourceReference, encoder);
        mountSegments = getMountSegments(path);
    }

    @Override
    public int getCompatibilityScore(Request request) {
        if (urlStartsWith(request.getUrl(), mountSegments)) {
            return 10;
        }
        return 0;
    }
}
4

0 回答 0