Я хочу получить текущий базовый URL-адрес приложения, которое обычно http://localhost:9000/
на локальном хосте и http://mydomain.com
на сервере. Если в будущем я смогу начать использовать https.
Как я могу это сделать?
Я хочу получить текущий базовый URL-адрес приложения, которое обычно http://localhost:9000/
на локальном хосте и http://mydomain.com
на сервере. Если в будущем я смогу начать использовать https.
Как я могу это сделать?
Router.getFullUrl("Controller.action")
- такого метода нет, routes.MyController.myMethod().absoluteURL(request());
- то же самое. 24.01.2014 Какую версию Play Framework вы используете?
Если вы используете Play 1.x, вам следует вручную указать базовый URL вашего приложения, используя переменную application.conf. Именно так я делаю, чтобы получить базовый URL-адрес для своих приложений. Например :
application.baseUrl=http://localhost:9000
%devcloud.application.baseUrl=http://dev-url.com
%prod.application.baseUrl=http://prod-url.com
С Play Framework 2.x вы можете использовать дополнительный файл конфигурации (таким образом, значения переменных зависят от среды — prod, dev, test...), как описано здесь: http://www.playframework.com/documentation/2.2.x/ProductionConfiguration
Эти решения работают, особенно если вы не хотите зависеть от действия или контроллера. В противном случае вы можете получить абсолютный URL-адрес, используя запрос в действии.
А затем попробуйте получить baseUrl: play.Play.application().configuration().getString("application.baseUrl")
В настоящее время play.Play.application().configuration().getString("application.baseUrl");
устарела в последней версии игры. Итак, вот последнее решение проблемы:
Сначала введите конфигурацию в класс:
@Inject
Configuration configuration;
Затем используйте его как:
String baseUrl = configuration.getString("application.baseUrl");