【发布时间】:2015-06-22 18:02:09
【问题描述】:
我正在使用 ROR、nginx、passenger...
如果数据库中没有图片,那么我的应用将提供“default_avatar.png”。我注意到我无法保存新图片。所以,我更新了我的蜻蜓初始化程序以指向我的数据库服务器:
...
# I have obscured the host IP for this example.
config.url_host = Rails.env.production? ? 'http://IP_OF_HOST' : 'http://localhost:3000'
...
现在我可以保存图片并通过我的应用查看它们,但“default_avatar.png”无法解决。奇怪的是,其他图像资产似乎确实出现了。为什么我会得到 403?起初猜测我认为这是一个权限错误。但是为什么它会为其他图像提供服务呢?
更新:
我刚刚注意到一个非常重要的线索。当资产不起作用时,它们有 url:
/media/jakbfAGasgAgADSGANJGFDgbnadglnalgbakljbgkjabg/default_avatar.png
当它们起作用时:
/assets/avatar.png
我应该提到我有 2 个应用服务器和 1 个数据库服务器。我不认为这是权限错误。
【问题讨论】:
-
您是否检查了 default_avatar.png 的文件权限?也许它们与您上传的文件不同(因为它们是由服务器创建的)并且 Nginx 无法读取它们。
-
我已更新我的问题以添加更多信息。我不认为它的权限。因为在我更新初始化程序之前它们会失败。
-
你在预编译你的资产吗?
-
资产已预编译
标签: ruby-on-rails ruby dragonfly-gem