我有一个静态文件,想在我的Play框架模型中读取它。该文件包含一些简单的文本内容。我无法找到任何示例或API,显示存储此类资源的适当位置,并且如何访问该资源。不管怎样,我正在使用Scala Play,但我不认为这里是相关的。
我有一个静态文件,想在我的Play框架模型中读取它。该文件包含一些简单的文本内容。我无法找到任何示例或API,显示存储此类资源的适当位置,并且如何访问该资源。不管怎样,我正在使用Scala Play,但我不认为这里是相关的。
没有真正指定数据文件应该放在哪里的地方。通常我会在application.conf
中设置路径,然后通过应用程序读取它。
Play.application().configuration.getString("my.data.path")
Play.application().path()
该方法返回一个 java.io.File
对象。
在读取文件时,没有特定于Play框架的技术。这个问题之前已经被问过和回答过了,详情请参见此处。简而言之,如果要读取一个小文本文件,只需执行以下操作:
val lines = scala.io.Source.fromFile("file.txt").mkString
properties/
目录中的第三方库?我可以修改第三方库,但不能使用任何Play特定的方法(即,仅使用纯Scala代码)。 - Jus12Play._
导入任何内容。当作为外部依赖项在 Play 中使用时,它如何仍然能够读取其文件? - Jus12import import play.Play;
Play.application().getFile("relative_path_from_<Project_Root>);
访问代码内部的文件。
只有在开发环境中才能完美运行。但是,一旦将其放到生产环境中使用dist文件,它将无法工作,因为您放置的整个资源文件夹不会被添加到dist中。为了解决这个问题,您必须明确要求play也将/resources文件夹添加到您的dist中。为此,您需要转到/build.sbt并添加以下行:
import com.typesafe.sbt.packager.MappingsHelper._
mappings in Universal ++= directory(baseDirectory.value / "resources")