我想获取应用程序的当前基本URL,该应用程序通常位于localhost http://localhost:9000/
和服务器http://mydomain.com
。如果将来我可以开始使用https。
我该怎么做?
答案 0 :(得分:4)
您使用的是什么版本的Play Framework?
如果您使用的是Play 1.x,则应使用application.conf变量手动指定应用程序的基本URL。这是我为我的应用程序检索基本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
如果您不想依赖Action或Controller,这些解决方案尤其有用。否则,您可以使用操作中的请求检索绝对URL。
答案 1 :(得分:2)
然后尝试获取baseUrl:
play.Play.application().configuration().getString("application.baseUrl")
答案 2 :(得分:0)
目前play.Play.application().configuration().getString("application.baseUrl");
已在播放最新版本中进行了展示。所以这是问题的最新解决方案:
首先将配置注入类中:
@Inject
Configuration configuration;
然后使用它:
String baseUrl = configuration.getString("application.baseUrl");