Rails / Paperclip - 无法看到上传的图像

时间:2013-05-22 14:51:57

标签: ruby-on-rails-3 paperclip

我有一个Rails 3应用程序,它有一个附件模型并使用Paperclip gem。一切都在开发环境中正常工作,但在生产服务器上我们无法访问任何上传的图像。图像位于正确的文件夹中,但是当我尝试在浏览器上访问它们时,我只需获得404页面。

上传文件夹位于公共文件夹下,名为“uploads”

我可以访问:“app_url / uploads / test.html”我手动创建它以查看它是否有效

但我无法访问:“app_url / uploads / test.jpg”,我通过Paperclip在应用程序中上传。

我猜这与服务器配置有关,但我不是专家,可能需要帮助。

由于

更新

我刚刚意识到上传的文件属于“nobody”,当我手动将所有者更改为“root”时,它似乎工作正常。所以我需要找到一种方法告诉Paperclip使文件属于“root”

1 个答案:

答案 0 :(得分:0)

让Web应用程序能够以root身份编写文件并不是一个好主意。文件权限来自编写文件的进程。如果你正在使用Passenger,那就是用户切换的概念:

http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerDefaultUser

在启动应用程序后,Passenger会尝试找出哪些用户拥有这些文件,并尝试将其应用程序进程切换到该用户。如果失败,“nobody”是默认值。

检查文件级别的应用程序权限。您的服务器上每个应用程序应该有一个用户帐户。应用程序(公共目录上方的目录和内容)应归该用户所有。公开的文件应该是其他人可读的,因此网络服务器也可以接收它们。

您是否正在使用Capistrano进行部署?