是否有默认方法来读取播放中的文件,即使在生产环境中也能正常工作?

我正在使用java框架来开发Web应用程序。 我想在运行时读取文件,该文件已包含在项目的文件夹中。 但是在生产环境中,该文件夹不可用。 有没有办法在运行时使文件夹可用? 特别是,是否有一种默认方法来处理这种情况?

我经历了一个问题“如何在Play Framework 2.2.1中读取文件? 1 ”但是没有提到生产环境中的问题。

对于某些特定任务,您可以选择您喜欢的位置而不是专用文件夹中的位置。 例如,您可以创建/ resources文件夹。 不要在/ app文件夹中创建任何资源文件夹,因为它只是存储代码的位置。 与其他特定文件夹相同。 然后你可以使用

import play.Play; Play.application().getFile("relative_path_from_); 

访问代码中的文件。

只有这一点,才能在开发环境中完美运行。 但是一旦你使用dist文件将它放入生产中,它将无法工作,因为你输入的整个资源文件夹将不会被添加到dist。 为了做到这一点,你必须明确要求play也将/ resources文件夹添加到你的dist中。 为此你要做的就是去你的/build.sbt并添加这些行

 import com.typesafe.sbt.packager.MappingsHelper._ mappings in Universal ++= directory(baseDirectory.value / "resources") 

现在,如果您检查并检查您的dist,您可以看到它在dist中有一个额外的文件夹“资源”。 那么它也适用于生产环境。