Playframework 玩框架:在生产模式下无法访问资产
因此,我研究发现,Play的Playframework 玩框架:在生产模式下无法访问资产,playframework,playframework-2.1,Playframework,Playframework 2.1,因此,我研究发现,Play的生产模式在处理资产时的行为与开发模式不同 我有一个网站,用户上传一张图片,上传后图片会立即显示在页面上。在显影模式下,图像显示良好。但在生产模式下,找不到图像。我知道在生产模式下,代码无法识别新编写的文件 一个有类似问题的用户编写了一个解决方案,但它是在Scala中。我用Java编写,不知道该用户的解决方案在做什么: 似乎此解决方案将文件作为下载服务?因为如果是的话,那不是我需要的。我想访问该文件以使用html显示它,如下所示: <img src='@route
生产
模式在处理资产
时的行为与开发
模式不同
我有一个网站,用户上传一张图片,上传后图片会立即显示在页面上。在显影模式下,图像显示良好。但在生产模式下,找不到图像。我知道在生产模式下,代码无法识别新编写的文件
一个有类似问题的用户编写了一个解决方案,但它是在Scala中。我用Java编写,不知道该用户的解决方案在做什么:
似乎此解决方案将文件作为下载服务?因为如果是的话,那不是我需要的。我想访问该文件以使用html显示它,如下所示:
<img src='@routes.Assets.at("images/fileName")'></img>
在
生产
模式下,如何访问新上传的资产文件?因此,如果在Play编译代码后发现您无法提供新添加的文件,下一个最佳选择是使用前端HTTP服务器,就像许多人建议的那样。我最终使用了nginx。由于我只使用nginx来提供文件,其他什么都没有,所以我将发布我为使其正常工作所采取的步骤
我正在使用Mac,因此我通过在终端中调用$brew install wget
安装了Homebrew。Homebrew很好,因为只需调用$brew install nginx
我使用此网站指导我如何修改nginx的配置文件:
然后,我只需从中修改配置文件
location / {
root html;
index index.html index.htm;
}
到
其中public
指播放项目中的文件夹。我这样做是为了不必重新排列代码。所以现在不是
<img src='@routes.Assets.at("images/fileName")'></img>
我用
<img src='http://localhost:8080/images/fileName'></img>
其中端口8080是我的nginx服务器请参阅此讨论:谢谢您的链接。我做了很多研究,没有发现这一点。James Roper的回复大致概括了资产控制员的局限性。
<img src='http://localhost:8080/images/fileName'></img>