在Play框架2.3.6中,在本地我可以使用public static String projectPath = Play.application().path().getPath();
获取项目的相对路径,并存储或检索存储在公共文件夹中的文件。但是在生产环境中工作时,相对路径显示为target/universal/stage/bin/<project-name>
。现在,我无法上传文件或获取公用文件夹中的文件。任何想法将不胜感激。
答案 0 :(得分:1)
答案很简单。你不能:))
Play是一个无状态框架,它将文件存储到文件系统是违背其意识形态的。所以你在PROD中没有文件系统。
您必须将它们存储到数据库或任何其他存储设备中。
但是,您可以通过以下方式访问 / public 文件夹中的文件:
play.Play.application().resourceAsStream("/public/someFile.gif");
答案 1 :(得分:0)
我创建了一个静态方法并检查播放是否在生产中运行。如果是,则返回绝对路径,否则返回相对路径。所有需要该路径的类都将调用此方法。