我通过生产管理功能上传图片。然后我使用pg_restore
将我的生产数据库下拉到我的本地数据库。问题是现在我的所有图像链接都在开发中被破坏了。我希望我的开发环境能够使用AWS s3图像网址进行生产和开发。
查看游戏机内部,我看到了:
本地Rails控制台
$ Image.last.photo.url
$ "/assets/products/3/product/__35.JPG?1415467267"
Heroku控制台
$ Image.last.photo.url
$ "https://s3.amazonaws.com/app_name/app/public/assets/products/3/product/__35.JPG?1415467267"
我正在使用以下相关宝石: paperclip,asset_sync和rmagick
My Image类正在使用回形针进行存储:
has_attached_file :photo, PAPERCLIP_STORAGE_OPTS
“开发”选项在development.rb和production.rb
中是相同的PAPERCLIP_STORAGE_OPTS = {
:styles => {:mini => '48x48>',
:small => '100x100>',
:medium => '200x200>',
:product => '320x320>',
:large => '600x600>' },
:default_style => :product,
:url => "/assets/products/:id/:style/:basename.:extension",
:path => ":rails_root/public/assets/products/:id/:style/:basename.:extension"
}
答案 0 :(得分:0)
我几乎发布了这个问题,然后想出来了。感觉我应该分享,万一其他人遇到同样的问题。
在config/environments/production.rb
我有:
config.after_initialize do
Paperclip::Attachment.default_options[:storage] = :s3
end
以上代码也应添加到config/environments/development.rb
!
现在使用:path
而非development.rb
编辑同一app
个文件中的图片:rails_root
:
PAPERCLIP_STORAGE_OPTS = {
# :styles, :default_style, and :url are the same as above
:path => "app/public/assets/products/:id/:style/:basename.:extension"
}