3

我目前正在使用 play framework 2 开发一个 web 应用程序。我在 /public 目录下创建了一个文件夹“files”。当我使用“play run”启动服务器时,该目录下的所有资源都可以访问。

部署到服务器后。我通过运行“play start”启动服务器,发现“files”下的资源再也找不到了。

我想知道“播放开始”和“播放运行”之间不一致的原因是什么

更新:经过几次试验。我发现是新上传的资源无法显示。场景如下:

1. play start --> server starts.
2. use application to upload a few images to the server.
3. try to display the uploaded image --> nothing is shown. browser shows the resource is not accessible.
4. kill the server process with task manager.
5. rm RUNNING_PID
6. run play start again 
7. Try to display the uploaded image --> now the images are showing.

所以,看起来像“播放开始”的“热更新”问题我可以做任何配置让服务器接受更改吗?谢谢。

4

2 回答 2

6

你到底把图像存储在哪里?在编译时,静态资产从 复制/public/target/scala-2.9.1/classes/public。该目录是类路径的一部分,并且从那里提供资产。因此,如果您在运行时将文件存储在那里,则应该可以找到它们。

旁注:这可能不是一个可持续的解决方案,因为您的用户加载的图像在下一次构建期间会被删除。也许您应该考虑在应用程序安装之外使用符号链接(注意!安全问题!)或将资产存储在其他地方,数据库或 S3 始终是不错的选择。

于 2012-05-27T14:35:16.043 回答
2

基于@Joerg Viola 的回答。我决定实施自己的行动来服务静态资源。事实证明这非常容易。从this link,我学会了在一行中实现一个文件服务器。

于 2012-05-29T16:45:38.760 回答