我们有一个Web应用程序,包括Angular2中的客户端和Play Framework 2.6中的服务器。此应用程序应允许用户上传自己的图像。与此处的许多用户类似,我们遇到了无法在生产模式下访问public/assets
中的图像的问题,因此我们尝试了向这些用户提供的解决方案,但没有成功。
我们在conf/routes
文件中创建了以下路线:
GET /files/*file controllers.AdminExerciseCtrl.serve(file)
导致以下自定义操作:
public Result serve(String file) {
Boolean DEVELOPMENT = Boolean.parseBoolean(ConfigFactory.load().getString("development"));
String path;
if(DEVELOPMENT) path = "public/";
else path = ConfigFactory.load().getString("root/");
return ok(new java.io.File(path + file));
}
即,我们将上传的图片保存到root/files/images
。
我们尝试了两种方式访问此路线:
@routes
会引发错误
src
字段中的路由(其中resource.resourcePath
是保存图像文件路径的变量,例如images/pic.jpg
),找不到路径(404 )。<img *ngIf="resource" class="thumbnail" [src]="'/files/' + resource.resourcePath">
我们开始绝望,因为这个项目相当大,上传图片是一个核心功能。我们可能遗失的任何想法?我们应该在客户端做什么关于路线的事情?
提前致谢。