为什么有些资产会禁止403?

时间:2015-06-22 18:02:09

标签: ruby-on-rails ruby dragonfly-gem

我正在使用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服务器。我不认为这是一个权限错误。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

使用AssetTagHelper lib提供的html帮助程序时,需要指定文件的扩展名。

这将有效: <%= image_tag('avatar.png') %>

这不会奏效: <%= image_tag('avatar') %>

不容易调试。