回形针 - " Missing.png"

时间:2014-10-21 14:57:41

标签: ruby-on-rails image paperclip image-uploading

我尝试为用户的头像设置默认图像,并遇到未在我的视图中显示的问题。我的user.rb文件的设置与Github页面上的显示方式完全相同

has_attached_file :avatar, default_url: "/assets/:style/missing.png"

我还在paperclip.rb目录中创建了一个initializer文件,其中包含以下代码:

Paperclip::Attachment.default_options[:default_url] = "/images/missing.png"

我继续将我的png文件missing.png放在我的assets/images文件夹中,但没有运气。然后我决定在我的公共目录public/images/missing.png中创建一个图像文件夹,但仍然有一个损坏的图像。每次更改我都无法重置我的rails服务器。与此处类似的问题不同,我没有特别收到任何错误,只是找不到图像。我做错了什么?

3 个答案:

答案 0 :(得分:0)

该行

has_attached_file :avatar, default_url: "/assets/:style/missing.png"

意味着对于所有样式,你应该有一个图像:

/assets/thumb/missing.png
/assets/big/missing.png

default_options在这种情况下无效,因为您在has_attached_file行中覆盖它。

只需为每个样式设置一个图片,或将default_url更改为/assets/images/missing.png

答案 1 :(得分:0)

解决方案包括两个步骤。

  1. 由于我在用户模型中使用default_url,因此无需为此特定方案添加或paperclip.rb
  2. 我没有使用wiki指定的url路径,而是将图像放在我的public/images目录中并使用:default_url: "missing.png",一切正常。
  3. 特别感谢Jared L Cowan在他的帖子的评论部分提出的建议

答案 2 :(得分:0)

添加ForgetTheNorm的答案。

我认为最好将图片放在public目录中。否则,如果您将其放在assets/images中,则需要将config.serve_static_assets更改为= true

您可以在行config/environments/production

周围的23中进行更改

此外,您可以添加这3行jquery作为解决方案,或作为防止图像损坏的附加措施。

$("img").error(function() {
  $(this).unbind("error").attr("src", "PUT_YOUR_FOLDER_OR_URL_PATH_HERE");
});