我正在使用CarrierWave将图片上传到我的网页。目前,我使用它与Amazon S3和Heroku合作。但是,我希望能够使用localhost在我的机器上测试它。再说一遍,我有这个工作。但是,我将上传的照片存储在位于以下位置的应用程序tmp目录中:
Users/.../app/tmp/uploads
。
尝试显示图像时,我的链接断开了。我一直在用:
<img src='<%= bucket.path %>'/>
显示图像,它一直在Heroku上工作。在localhost上我收到此错误:
ActionController::RoutingError
(No route matches [GET] "/Users/.../app/tmp/uploads/pic.jpeg")
我不确定该怎么做,我认为提供这条路就足够了。谢谢你的帮助!
答案 0 :(得分:0)
在/config/environments/development.rb中,您应该能够设置以下内容:
config.uploadsURL = "http//localhost:3000"
config.serve_static_assets = true
在/config/initializers/carrierwave.rb中:
if Rails.env.production?
# your aws config stuff
else
config.storage = :file
end
在一个视图中(除非我忘了什么)你应该只能:
<%= image_tag(image.imgUpload.mini) if image.imgUpload? %>
其中'mini'是carrierwave版本,imgUpload是您在模型中定义的安装:
mount_uploader :imgUpload, ImageUploader
当然,您应该能够在localhost上测试它,同时还使用AWS存储。从/:
更改/config/environments/development.rb可能更简单config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
到
config.action_controller.asset_host = "//your-test-bucket.s3.amazonaws.com"
并在localhost上运行时继续使用AWS。