【发布时间】:2013-12-12 05:33:22
【问题描述】:
我有一个使用回形针附加照片的 Rails 4 应用程序。我的 db/seeds.rb 文件为我的 Person 模型添加了一些照片,如下所示:
Person.create(:first_name => 'Jon', :last_name => 'Snow',
:photo => File.open("#{Rails.root}/app/assets/images/jon-snow.png))
在我的 app/models/person.rb 文件中,我将 :photo 作为回形针附件进行裁剪和调整大小:
class Person < ActiveRecord::Base
has_attached_file :photo,
:styles => { :medium => "256x256#", :small => "64x64#", :tiny => "24x24#" },
:default_url => :set_default_avatar,
:url => "/assets/photos/:id/:style/:basename.:extension",
:path => ":rails_root/public/assets/photos/:id/:style/:basename.:extension"
validates_attachment_size :photo, :less_than => 5.megabytes
validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png']
我的问题是,当我尝试将其部署到 heroku(使用 Cedar 堆栈)然后为数据库播种时,图像都显示为损坏。但是,在我的本地计算机上一切正常。
heroku 上生成的损坏的图像标签可能类似于:
<img alt="Jon Snow" src="/assets/photos/21/small/jon-snow.png?1386825683">
有谁知道为什么这个链接会在 heroku 上断开,但在我的电脑上却没有?我知道 heroku 正在生成调整大小的照片,因为 heroku 控制台输出的内容类似于这篇文章中的内容:Seed images in heroku with paperclip.
但是,它将它们放入 public/assets 而不是控制器指定的 public/assets/photos/:id/:style/:basename.:extension 中。
我已尝试执行链接帖子中提到的操作以及运行:
heroku run rake assets:precompile
还有很多其他的东西,但没有任何效果。任何帮助将不胜感激。
【问题讨论】:
-
另外,我应该提到从网页手动上传文件到 heroku 工作正常。但是问题发生在数据库中。
标签: ruby-on-rails ruby heroku