1

我正在使用 CarrierWave 将图像上传到我的网页。目前,我正在使用 Amazon S3 和 Heroku。但是,我希望能够在我的机器上使用 localhost 对其进行测试。同样,我有这个工作。但是,我将上传的照片存储在我的应用程序 tmp 目录中:

Users/.../app/tmp/uploads.

尝试显示图像时,我得到一个断开的链接。我一直在使用:

<img src='<%= bucket.path %>'/>

显示图像,它一直在 Heroku 上工作。在本地主机上,我收到此错误:

ActionController::RoutingError (No route matches [GET] "/Users/.../app/tmp/uploads/pic.jpeg")

我不确定该怎么做,我认为提供路径就足够了。谢谢您的帮助!

4

1 回答 1

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”是载波版本,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"

并在本地主机上运行时继续使用 AWS。

于 2013-01-23T20:44:26.223 回答