即使URL /图像位于正确的位置,回形针也不显示图像

时间:2015-07-10 19:15:29

标签: ruby-on-rails image paperclip

使用Paperclip将头像附加到我的rails应用程序的用户配置文件中。我按照paperclip github上的说明初始化并附加到我的应用程序。

我在public / images / medium / missing.png中有一个图像,对于这两种情况(当我上传或当我回溯默认值时)我没有图像。我已经检查了我的目录,并且有一个图像,它说它正在寻找,但没有抓住它。此外,当我尝试上传图像时,我知道图像已正确上传,因为在rails控制台中调用用户时会显示所有正确附加的信息。

我在我的视图中调用图像:

<%= image_tag(@blog.user.avatar.url(":medium"), :class => "image-circle avatar") %>

用户模型中的Paperclip声明如下所示:

has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100#"}, :default_url => "/public/images/:style/missing.png"
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/

真的不确定发生了什么。检查未正确加载的图像时出现的路径错误直接指向本地服务器中的图像。事实上它无法抓住丢失或上传的文件也让我感到茫然。任何帮助都会非常感激!!

当我检查具有上传头像的用户时,可以很好地衡量输出:

avatar_file_name: "11390219_10206114805925816_6595348111261743639_n.j...", avatar_content_type: "image/jpeg", avatar_file_size: 101926, avatar_updated_at: "2015-07-10 18:51:44"> 

提前致谢!

修改

这是提供404错误的网址:

http://localhost:3000/images/medium/missing.png 

在我的本地目录中它是“root / public / images / medium / missing.png”

不确定它是如何抓住它的,除非我只是遗漏了一些非常明显的东西。 (我也努力在那里路由公众,但无济于事。)

3 个答案:

答案 0 :(得分:1)

修改

您可能只是没有提供静态资产,请添加:

config.serve_static_assets = true

到你的development.rb

原始邮寄

在application.rb(或特定于环境的文件)中,您应该有一个config.paperclip_defaults = {...},这是文档中的链接:https://github.com/thoughtbot/paperclip#defaults

这是一个使用雾的示例:

config.paperclip_defaults = {
  :storage => :fog,
  :fog_credentials => {
    :provider => "Local",
    :local_root => "#{Rails.root}/public"
  },
  :fog_directory => "",
  :fog_host => "localhost:3000"
}

你的申请表中有类似的东西吗?我刚刚在我的应用程序上测试过,我能够上传一张图片,但是如果没有paperclip_defaults哈希则不能看到任何图片。此外,请不要忘记在更新配置文件后重新启动应用程序。我希望这有帮助!

答案 1 :(得分:0)

您是否尝试过围绕图像样式删除引号?周围:中等?

<%= image_tag(@blog.user.avatar.url(:medium), :class => "image-circle avatar") %>

如Paperclip文档中所示: https://github.com/thoughtbot/paperclip#show-view

答案 2 :(得分:0)

同样的问题,通过使用brew重新安装imagemagic来解决它

详细信息:如果您是imagemagic,请尝试更新imagemagic,如果它要求您链接它, 试试这个:

 brew link --overwrite imagemagick

它对我有用。希望它有用