我正在使用carrierwave,我想更改存储图像的目录。
目前图片网址为/uploads/modelname/image/51/nameoffile.jpg
ImageUploader中的store_dir是
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
我绝对不希望展示modelname 是否有一个公认的理想路径,图像应存储在heroku上?
答案 0 :(得分:2)
Heroku不允许上传到他们的服务器。您需要使用其他存储介质,例如亚马逊的S3。
我实际上正在使用Parse(www.parse.com)API将图像存储在他们的解决方案中。但这取决于您需要如何访问图像。
答案 1 :(得分:1)
您可以将文件上传到Heroku dyno文件系统,但文件系统是易腐烂的,不会在您的dynos之间共享。这是一个Gist,展示如何在AWS S3中制作Carrierwave商店上传文件,这是一个更好的选择:https://gist.github.com/cblunt/1303386
以下是使用PaperClip完成此操作的Heroku指南:https://devcenter.heroku.com/articles/paperclip-s3