播放2 - 外部配置文件无法在生产模式下加载

时间:2013-07-08 17:21:59

标签: configuration playframework-2.0

我在生产模式的play 2.1.1应用程序的application.conf中包含外部文件时遇到问题(使用start启动时)

official documentation后,我在include中添加了application.conf声明:

[...]
include "/absolute/path/to/external/config/file.conf"

内容以这种方式加载:

configuration.getConfig("some-key")

它在开发模式下工作正常,但在生产模式下失败(它总是None)。

这阻止我将我的应用程序部署到生产环境。

非常感谢任何帮助/想法。

编辑: 根据Saffron的评论,我尝试了一些解决方法。

从include语句中删除第一个斜杠不起作用。

通过-Dconfig.file = / abs / path加载配置文件给出了奇怪的结果,似乎Play的行为不一致:

play start -Dconfig.file=/path/to/file.conf不起作用。然而,启动play然后运行start -Dconfig.file=/path/to/file.conf确实有用?? !!

所以我最终创建了一个新的配置,而不是使用Play的:

val conf = ConfigFactory.parseFile(new File("/path/to/file.conf")).resolve()
val myValues =  new Configuration(conf).getConfig("some-key").get

希望它可以帮助遇到同样问题的人。

1 个答案:

答案 0 :(得分:1)

我遇到了一个问题,我的图像在prod模式下没有正确显示,但在开发模式下没问题。 解决方案是将路径写为(“images / ...”)而不是(“/ images / ...”)。试试吧,只是为了科学。

无论如何,如果这不起作用,这里有一些关于prod模式中的其他Conf的文档,控制台行覆盖文件。 $ start -Dconfig.file=/opt/conf/prod.conf

http://www.playframework.com/documentation/2.0/ProductionConfiguration