未定义的方法`fog_host ='

mba*_*jur 15 ruby-on-rails ruby-on-rails-3 carrierwave fog

当我试图运行我的应用程序时,我收到以下错误:

config/initializers/carrierwave.rb:4:未定义的方法`fog_host ='用于CarrierWave :: Uploader :: Base:Class(NoMethodError)

这是我的initializers/carrierwave.rb文件:

CarrierWave.configure do |config|
  config.storage = :fog
  config.fog_directory = 'media.domain.pl'
  config.fog_host = 'http://s3-eu-west-1.amazonaws.com/media.domain.pl'

  config.fog_credentials = {
    :provider => 'AWS',
    :aws_access_key_id => '***',
    :aws_secret_access_key => '***',
    :region => 'eu-west-1',
  }
end
Run Code Online (Sandbox Code Playgroud)

我已经carrierwave并且fog包括在我的Gemfile工作中直到最后一次使用bundle update.您知道我的代码有什么问题吗?我在谷歌找不到任何关于它的东西

ruby v.1.8.7
rails v.3.2.6
fog v.1.6.0
carrierwave v.7.0.0

Pet*_*own 40

fog_host似乎不是配置选项.从Carrier wave文档中看起来您可能需要asset_host:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',       # required
    :aws_access_key_id      => 'xxx',       # required
    :aws_secret_access_key  => 'yyy',       # required
    :region                 => 'eu-west-1'  # optional, defaults to 'us-east-1'
  }
  config.fog_directory  = 'name_of_directory'                     # required
  config.fog_public     = false                                   # optional, defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional, defaults to {}
  config.asset_host     = 'https://assets.example.com'            # optional, defaults to nil
end
Run Code Online (Sandbox Code Playgroud)

更新:

这是引入该更改的提交:https://github.com/jnicklas/carrierwave/commit/7046c93d6b23cffef9f171a5f7f0dd14267a7057

  • StackOverFlow是一个宝藏.新问题的新答案.谢谢@Beerlington (2认同)
  • 我的上帝,谢谢你!我发现使用`fog_host`的所有文档,我需要在我的设置中设置`asset_host`以关闭https的图像网址,以便它们可以在普通的http上查看.再次感谢! (2认同)