Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3.1 Carrierwave Gem-Heroku-Fog Gem配置-命名错误_Ruby On Rails 3.1_Heroku_Amazon S3_Carrierwave_Fog - Fatal编程技术网

Ruby on rails 3.1 Carrierwave Gem-Heroku-Fog Gem配置-命名错误

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'

我对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': 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,我将添加这一行。非常感谢。