我尝试为用户的头像设置默认图像,并遇到未在我的视图中显示的问题。我的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服务器。与此处类似的问题不同,我没有特别收到任何错误,只是找不到图像。我做错了什么?
答案 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)
解决方案包括两个步骤。
default_url
,因此无需为此特定方案添加或paperclip.rb
public/images
目录中并使用:default_url: "missing.png"
,一切正常。特别感谢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");
});