即使 URL/images 在正确的位置,回形针也没有显示图像

Paperclip not showing image even though URL/images in correct places

使用 Paperclip 将头像附加到我的 rails 应用程序的用户配置文件中。我按照回形针 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 错误的 URL:

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

在我的本地目录中它变为 "root/public/images/medium/missing.png"

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

你有没有试过去掉图片样式周围的引号?大约 :medium?

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

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

编辑

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

config.serve_static_assets = true

给你的development.rb

原版POST

在你的 application.rb(或环境特定文件)中,你应该有一个 config.paperclip_defaults = { ... },这是文档中的 link: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 哈希就看不到任何图片。另外,不要忘记在更新配置文件后重新启动您的应用程序。希望对您有所帮助!

同样的问题,用brew重新安装imagemagic解决了

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

 brew link --overwrite imagemagick

它对我有用。希望对你有帮助