#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 — это мой ресурс