Carrierwave和Heroku不适用于播种



我这样配置了一个载波上传器:

class PortraitUploader < CarrierWave::Uploader::Base
    # Include RMagick or MiniMagick support:
    include CarrierWave::RMagick
    # include CarrierWave::MiniMagick
    # Choose what kind of storage to use for this uploader:
    storage :file
    # storage :fog
    # Override the directory where uploaded files will be stored.
    # This is a sensible default for uploaders that are meant to be mounted:
    def store_dir
        "#{Rails.root}/public/images/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
    end
    def cache_dir
        "#{Rails.root}/tmp/uploads"
    end
end

我的种子是这样的:

Portrait.create({
    main: true,
    image: open('http://some-image-out-there.jpg'),
    customer: @hatakeda
})

开发工作100%。

当我将应用程序上传到Heroku时,我仍然可以使用上传器手动设置图像,无论是上传还是发送url

然而,e-seed创建的图像url不会显示图像-404错误。

我如何才能让Carrierwave、Heroku和我的种子们快乐地一起工作?

您想在heroku上存储图像吗?简短的回答:你不能,因为Heroku是只读的(ephemeral writeable filesystem)。如果上传成功,这些文件将在下次部署期间或工作人员因任何原因重新启动时被删除。在heroku看看Carrierwave本地商店的图片,而不是s3上的图片。

最新更新