Rails]在heroku上新提交后删除了图像

我正在使用Carrierwave上传图片,我的应用程序现在正在Heroku上。 除非我将新提交推送到heroku,否则图像上传成功。 当推送新提交时,我在推送之前上传的图像似乎被删除。有谁知道背后的原因以及如何解决这个问题?

更新:问题变成了, 在没有像Amazon EC3这样的存储服务器的Heroku上使用carrierwave 。 Heroku不会将文件保存在公共文件夹中,默认情况下载波上传。

应用程序/上传/ image_uploader.rb:

def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end 

并且您需要将其更改为tmp文件夹中的某个位置,以便在每次提交后保留图像文件。 我试着改变它

 "#{Rails.root}/tmp/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 

但它不起作用。 我检查了我的本地环境,图像成功存储在正确的位置。 所以我想如果我只是将路线设置到正确的位置,这可能会起作用。 有人可以帮我吗?

由于Heroku不允许存储静态文件(除非它与应用程序本身相关联),您应该使用fogCarrierwave上传到远程存储库(例如Amazon S3)。 每当用户上传文件时,该文件将自动上传到您的S3存储而不是Heroku。