繁体   English   中英

在制作过程中在Play Framework中获得根文件夹?

[英]Get root folder in the Play Framework during production?

我正在一个项目中,我必须在文件系统上保存一些用户临时生成的文件。 在我的开发环境中,我在根文件夹中创建了一个名为usr文件夹,并创建了从该文件夹读取和写入的用户相关路径。

但是,当我使用/.activator start在生产环境中运行服务器/.activator start 该框架尝试从root/target/universal/stage/usr读取。

我什至尝试使用Play.application.path.getPath但我一直得到相同的路径。

有没有办法让根文件夹进入生产环境?

谢谢

您正在获取正确的根文件夹。 start命令的意义在于验证您的应用程序将如何在生产环境中运行。 因此,它可以构建应用程序,就像将其推入产品时所要做的那样。 然后“将其部署到产品”-将其解压缩到target/universal/stage文件夹,然后从该文件夹运行应用程序。 所以target/universal/stage是您正确的根文件夹。

注意-不建议使用start命令:

[警告]不建议使用start命令,并且在以后的Play版本中将其删除。

[警告]要在生产模式下运行Play,请改为运行“ stage”,然后在target / universal / stage / bin中执行生成的启动脚本。

[警告]要使用生产模式测试您的应用程序,请运行'testProd'。

更新

您需要将下一个代码添加到build.sbt

mappings in Universal ++=
  (baseDirectory.value / "usr" * "*" get) map
    (x => x -> ("usr/" + x.getName))

这将告诉sbt将您的“ usr”文件夹添加到“生产软件包”(阶段)。 采取以关注-它不会“链接”,将硬拷贝usr文件夹复制到target/universal/stage这样你才会有target/universal/stage/usr是拷贝usr运行命令之前start

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM