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

标签 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/"

非常感谢。

最佳答案

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

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

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

作为替代方案,您可以定义 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

关于configuration - 在 application.conf 中使用相对路径作为配置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728052/

相关文章:

scala - 迭代案例类数据成员

c# - 将日志记录配置从 appsettings 绑定(bind)到 POCO Asp.Net Core 2

database - 使用 Fluent NHibernate 使用 Nhibernate 生成数据库

java - 运行来自 intellij 的 play 框架 2.5

Play2 中 inputRadioGroup 的 Java 示例

url-rewriting - 将Form参数添加到url Play框架

linux - 如何避免创建 .bzr.log (bazaar 日志文件)或将其配置为 ~/.bazaar/而不是 ~/?

apache - SVN。 ACL 同名不同仓库

playframework - Play 2 个模块 : how to add routes without tight coupling?

java - 使用 play 框架的 scala 中的 Actor 中出现奇怪的 NullPointerException