我见过很多其他人和我有类似问题的人,但列出的解决方案都不适用,所以我希望这个很棒的社区可以帮助我。
我正在尝试使用 sitemap_generator gem,但我使用 Heroku 托管,所以我尝试按照他们的文档here使用 Carrierwave 将站点地图上传到 Google Cloud Storage。我已经在使用谷歌云上传我的图片,一切正常,所以我希望它会很简单,但是文件没有被上传。文档说您需要添加:
config.storage = :fog
但是,无论何时添加到您的carrierwave 配置文件,都会出现以下错误:
gems/carrierwave-49fdad1ec6ca/lib/carrierwave/uploader/configuration.rb:75:in `eval': uninitialized constant CarrierWave::Storage::Fog (NameError)
我的 Carrierwave 配置如下所示:
CarrierWave.configure do |config|
config.cache_dir = "#{Rails.root}/tmp/"
config.storage = :fog
config.fog_credentials = {
:provider => 'Google'
}
config.fog_directory = 'bucket-name'
config.asset_host = 'https://domain.storage.googleapis.com'
end
(fog_directory 和asset_host 被替换为虚拟值)
在我的 gem 文件中,我有:
gem 'fog'
gem 'carrierwave', github: 'carrierwaveuploader/carrierwave'
我看到很多人在使用 AWS 时遇到同样的错误,但他们的解决方案是改为使用雾宝石而不是雾aws(我已经在这样做)并且需要雾/aws。我已经这样测试过:
gem 'fog', require: 'fog/google'
但仍然有同样的问题。
谁能建议我可以做些什么来尝试解决这个问题?任何帮助将不胜感激!!
非常感谢