Неправильный способ отображения ресурсов в режиме развертывания Wicket

#wicketstuff #wicket-7

#wicket stuff #wicket-7

Вопрос:

У меня есть страница

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

На этой странице есть редактор TinyMCE4. Которые пытаются загружать изображения, используя относительный путь «images/1.jpg »
Я добавил сопоставление ресурсов, чтобы обеспечить успешную загрузку изображений.

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

В режиме разработки все работает нормально, изображения загружаются в редактор, но в режиме развертывания страница вызывалась дважды, первый раз для / card / 1 и второй раз для /card/image/1.jpg.

Как правильно подключить ресурсы для режима развертывания?

ОБНОВЛЕНИЕ похоже, найдено причину

 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;
    }
}
  

Комментарии:

1. Нет разницы между монтируемыми страницами и ресурсами в режимах разработки и PROD. Должна быть другая причина, по которой страница должна быть дважды нажата в режиме PROD.

2. Не могли бы вы, пожалуйста, помочь определить разницу? я читал, что есть разница в локаторе ресурсов, но я знаю об этом … для mow я вижу, что отображение изображений имеет примерно тот же путь. на втором этапе загрузки страницы в режиме PROD я получаю «изображение» в виде $ {CardID}

3. @Martin Что бы вы могли предложить для отладки на случай обнаружения проблемы?

4. Я только что запустил отладку сопоставления запросов и вижу, что у Page mappper оценка 3, а у resource 0. screencloud.net/v/jv21 (на скриншоте 1 — похоже на некоторое поведение. у него нулевой указатель,) 2 — это первая страница 3 — это мой ресурс