Калитка: Относительно абсолютного URL или получают базовый URL

Если у меня есть относительный путь к статическому активу (flash/blah.swf), что лучший способ состоит в том, чтобы программно преобразовать это в абсолютный URL (http://localhost/app/flash/blah.swf)? Или что лучший способ состоит в том, чтобы получить базовый URL приложения Калитки? Я попытался использовать RequestUtils.toAbsolutePath, но это, кажется, не работает надежно и часто выдает исключения. Это должно работать над всеми серверами, на которых развертывается приложение.

13
задан Gilean 12 April 2010 в 13:48
поделиться

2 ответа

org.apache.wicket.protocol.http.servlet.ServletWebRequest имеет метод getRelativePathPrefixToContextRoot() (фактически определенный как абстрактный в суперклассе).

Стандартной идиомой для его использования является

RequestCycle.get().getRequest().getRelativePathPrefixToContextRoot() + location;
0
ответ дан 1 December 2019 в 22:22
поделиться

Я использовал что-то подобное после добавления свойства base_url к моему классу MyApplication , расширяющему приложение калитки.

MyApplication app = (MyApplication)getApplication();
String appBaseUrl = app.getBaseUrl(); 
if (StringUtils.isEmpty(appBaseUrl)) { 
    appBaseUrl = RequestUtils.toAbsolutePath(urlFor(app.getHomePage(), new PageParameters()).toString());
    app.setBaseUrl(appBaseUrl); 
} 

// Add base URL to <script wicket:id="base_url"></script> to use with Flash
add(new Label("base_url", "base_url = \"" + appBaseUrl + "\";").setEscapeModelStrings(false)); 
0
ответ дан 1 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: