Ruby on rails 如何访问存储在tmp目录中的文件?
我正在使用CarrierWave将图像上载到我的网页。目前,我正在与AmazonS3和Heroku合作。但是,我希望能够使用localhost在我的机器上测试它。再一次,我有这个工作。但是,我将上传的照片存储在我的应用程序tmp目录中,该目录位于:Ruby on rails 如何访问存储在tmp目录中的文件?,ruby-on-rails,Ruby On Rails,我正在使用CarrierWave将图像上载到我的网页。目前,我正在与AmazonS3和Heroku合作。但是,我希望能够使用localhost在我的机器上测试它。再一次,我有这个工作。但是,我将上传的照片存储在我的应用程序tmp目录中,该目录位于: Users/../app/tmp/uploads 当试图显示图像时,我得到一个断开的链接。我一直在使用: ”/> 显示图像,它一直在Heroku上工作。在localhost上,我遇到以下错误: ActionController::路由错误 (没有与[
Users/../app/tmp/uploads
当试图显示图像时,我得到一个断开的链接。我一直在使用:
”/>
显示图像,它一直在Heroku上工作。在localhost上,我遇到以下错误:
ActionController::路由错误
(没有与[GET]匹配的路由“/Users/../app/tmp/uploads/pic.jpeg”)
我真的不知道该怎么办,我想提供路径就足够了。谢谢你的帮助 你在用雾吗?此答复假定您是 在/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? %>
当然,您应该能够在本地主机上测试它,同时也可以使用AWS存储。从以下位置更改/config/environments/development.rb可能更简单:
config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
到
并在本地主机上运行时继续使用AWS。您尝试过使用
bucket.url
吗?我已经尽了最大努力。现在我得到了interning空字符串
我添加了config.action\u controller.asset\u host=“///your test bucket.s3.amazonaws.com”
。什么会导致实习空字符串错误?我在网上到处找了找,没有找到什么帮助。我将尝试重置本地数据库,我觉得可能有问题。谢谢你的帮助!您的测试bucket应该替换为s3上的实际bucket名称,对吗?实际上不是“你的测试桶”。只是检查一下。
config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
config.action_controller.asset_host = "//your-test-bucket.s3.amazonaws.com"