2015-04-05 2 views
0

в моих настройках приложения калитки я хочу установить параметр имени пользователя на корне, какМонтажа параметра на корневой URL врежется ресурс местоположения калитки

mountPage (Profile.class «/ $ {имя пользователя}») подобно как twitter сопоставляет имена пользователей своим учетным записям. В калитке это, похоже, приводит к сбою алгоритма определения ресурсов. В том смысле, что все файлы css, js теперь загружаются с помощью 404.

Есть ли работа вокруг этого?

ответ

1

Благодаря martin-g. Переверните MountMapper, чтобы установить сегменты URL в 1, чтобы он не сопоставлялся с другими ресурсами.

public class UsernameMountUrlMapper extends MountedMapper { 

    public UsernameMountUrlMapper(String mountPath, 
     Class<? extends IRequestablePage> pageClass) { 
     super(mountPath, pageClass); 
    } 

    @Override 
    protected boolean urlStartsWithMountedSegments(Url url) { 
     return url.getSegments().size() == 1 &&  !url.getPath().equals("favicon.ico") && !url.getPath().equals("oops") && !url.getPath().equals("Index"); 
    } 

} 
1

Код должен выглядеть так: mountPage (Profile.class, "/${username}"). Обратите внимание на $, который я добавил. Это означает, что параметр именованного пути является обязательным.

Пожалуйста, сообщите более подробную информацию о проблеме, если это не решит проблему.

+0

Я только пропустил доллар здесь. Это в моем коде. Кажется, что/mountpoint конфликтует с/$ {username}. –

+0

Ресурсы, расположенные с , теперь показывают ../resource/com.app.prototype.web.Authenticated/bootstrap.min-ver-1428321141752.css. Когда это когда-то было ./wicket/resource/com.app.prototype.web.Authenticated/bootstrap.min-ver-1428321141752.css –

+0

Если они столкнулись, вы можете использовать домашнюю страницу в качестве точки входа. Если есть параметры.get (0), то это имя пользователя. ЕСЛИ такой параметр отсутствует, тогда показывается общая страница. –

Смежные вопросы