我正在使用ROR,nginx,乘客......
如果数据库中没有图片,那么我的应用将提供' default_avatar.png'。我注意到我无法保存新照片。所以,我更新了我的dragonfly初始化程序,指向我的数据库服务器:
...
# 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?起初我猜我认为这是一个权限错误。但那为什么它会为其他图像服务呢?
更新:
我刚刚注意到一个非常重要的线索。当资产不起作用时,他们有网址:
/media/jakbfAGasgAgADSGANJGFDgbnadglnalgbakljbgkjabg/default_avatar.png
当他们工作时:
/assets/avatar.png
我应该提到我有2台app服务器和1台db服务器。我不认为这是一个权限错误。
答案 0 :(得分:0)
我遇到了同样的问题。
使用AssetTagHelper
lib提供的html帮助程序时,需要指定文件的扩展名。
这将有效:
<%= image_tag('avatar.png') %>
这不会奏效:
<%= image_tag('avatar') %>
不容易调试。