在application.conf中使用相对路径作为配置值

时间:2013-03-31 09:16:25

标签: configuration playframework playframework-2.1

我正在尝试将SQLite与Play Framework 2.1结合使用,但我需要使用相对于Play应用程序根目录的相对路径。我怎么能这样做?

这是application.conf中的相关代码

db.default.driver=org.sqlite.JDBC
db.default.url="jdbc:sqlite:/I/want/relative/path/"

非常感谢。

1 个答案:

答案 0 :(得分:2)

如果要在Play应用程序的根目录中创建数据库,则应执行以下操作:

db.default.url="jdbc:sqlite:sqlite_test.db"

我认为如果你想在<PlayAppRootDirectory>/database/db_name.db这样的文件夹中使用make数据库,你应该在配置值中提供完整的绝对路径。

作为替代方案,您可以定义Play应用程序根目录的环境变量,并在application.conf上使用其值。

Play!Framework 2.x使用 HOCON 格式(人工优化配置对象表示法)作为配置文件的语法。

如果要将Play!Framework根文件夹用作数据库的路径,则应执行以下操作:

db.default.driver=org.sqlite.JDBC
# The following line use HOCON format
db { default.url : "jdbc:sqlite:"${PLAY_APPS_ROOT}"/database/db_name.db" }

上面的配置值使用HOCON语法。请注意,${PLAY_APPS_ROOT} Play!Framework应用程序根文件夹的环境变量。数据库路径实际上是绝对路径,因为您必须在完整绝对路径中定义数据库路径。您可以阅读以下资源供您参考:

  1. Typesafe config
  2. Play Documentation - Configuration