Ruby on rails 3.1 Carrierwave Gem-Heroku-Fog Gem配置-命名错误
我对Heroku和Carrierwave Gem有点迷茫。我读过维基,读过我的书,也在网上搜索过,我承认,我需要帮助。本地的一切都很好,但Heroku对应用程序进行了粉碎 ///来自HEROKU日志的错误消息Ruby on rails 3.1 Carrierwave Gem-Heroku-Fog Gem配置-命名错误,ruby-on-rails-3.1,heroku,amazon-s3,carrierwave,fog,Ruby On Rails 3.1,Heroku,Amazon S3,Carrierwave,Fog,我对Heroku和Carrierwave Gem有点迷茫。我读过维基,读过我的书,也在网上搜索过,我承认,我需要帮助。本地的一切都很好,但Heroku对应用程序进行了粉碎 ///来自HEROKU日志的错误消息 2012-01-03T17:33:26+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/carrierwave-0.5.8/lib/carrierwave/uploader/configuration.rb:91:in `eval'
2012-01-03T17:33:26+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/carrierwave-0.5.8/lib/carrierwave/uploader/configuration.rb:91:in `eval': uninitialized constant CarrierWave::Storage::Fog (NameError
///GEM文件
gem "fog"
gem 'carrierwave'
/app/uploaders/avatar\u uploader.rb
storage :fog
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => 'XXXX',
:aws_secret_access_key => 'XXXX',
:region => 'eu-west-1' # optional, defaults to 'us-east-1'
}
config.fog_directory = 'site_images' # required
config.fog_public = true # optional, defaults to true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
end
/config/initializers/carrierwave.rb
storage :fog
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => 'XXXX',
:aws_secret_access_key => 'XXXX',
:region => 'eu-west-1' # optional, defaults to 'us-east-1'
}
config.fog_directory = 'site_images' # required
config.fog_public = true # optional, defaults to true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
end
当我将存储更改为file not fog时,不会出现错误。是否有其他我跳过或缺少的雾设置。非常感谢您的帮助。是否需要使用雾设置创建单独的文档 这可能不是你问题的解决方案,但值得一试
config.cache_dir=“#{Rails.root}/tmp/uploads”
。这将有助于保存文件,直到它们上载到您的S3 bucket
如果这样做没有帮助,您还可以发布您的上传文件吗?您没有遗漏任何内容-只是为了检查明显的情况,您已经绑定并提交了锁定文件,并将其推送到heroku?我在Heroku和Fog上运行的Carrierwave版本与你的版本相同,很好,所以我担心这是针对你的具体情况。您在lib/carrier中没有任何fog凭证,是吗?谢谢John,Habe捆绑并承诺。Carrierwave谈到在lib目录中添加文件。我只有/config/initializers/carrierwave.rb。我应该把文件放在lib目录下吗?不,你在config/initializers中说得对-lib/carrierwave会导致你得到的错误。谢谢Yuri,我将添加这一行。非常感谢。