0

我不知道为什么,但现在当我尝试启动 rails 服务器时,要么出现rails s此错误,要么出现bundle exec rails s以下错误:

active_support/dependencies.rb:274:in 'require': cannot load such file -- fog (LoadError)

它正在工作,现在它不会启动。

正在运行载波和雾,并且安装了两个宝石

编辑:

这是Gemfile,对不起,它是一个要点的链接,但 SO 决定我的帖子有太多的代码,所以不会让我提交,所以现在,它是一个要点。

编辑:这是包含carrierwave配置选项的要点,我们在环境文件中有配置选项,所以为了这个要点,我只是将代码块复制到一个文件中,我显然已经删除了私人信息,一切else 是不变的。

4

2 回答 2

0

一时兴起,我将foggem 添加到 Gemfile 并且......问题消失了,我的意思是,仍然存在问题,但它与这个无关。我以为你不需要使用fogusing fog-aws,加上为什么它以前工作而不是现在工作?

于 2017-08-15T11:32:47.963 回答
0

您的carrierwave.rb配置文件中似乎缺少(至少)一行。如果您使用的是fog-awsgem,则需要包含以下行:

config.fog_provider = 'fog/aws'

查看carrierwave自述文件,您可以看到在设置凭证哈希之前,官方代码示例中该行被注释为“必需”。

编辑:

刚刚发现 Carrierwave Issue 1648似乎支持此解决方案。

编辑2:

我知道您可以使用fog-aws我指出的 gem 和配置运行 Carrierwave,也可以使用fog没有该行的 gem。我建议注释掉配置行并只尝试foggem。

接下来要尝试的是确保您使用的 Carrierwave 版本在您的 Rails 版本是最新版本时就已经存在。从应用程序的主目录中使用bundle show carrierwave以查看已安装的版本,并考虑降级到 0.10.0,这在 Rails 4.2.9 是最新版本时是最新的,只是为了看看会发生什么。可能是有人运行bundle update并破坏了应用程序,因为虽然您的 gemfile 指定了 Rails 版本,但 Carrierwave 没有特定版本。更新一个而没有另一个可能会破坏您的应用程序。

通常我可能不会建议文件还原,因为 Carrierwave 自述文件明确指出当前版本可在 Rails 4 或更高版本上运行,但必须有一些解释来解释为什么您的应用程序之前看起来不错并且现在出现问题。在这一点上进行一些推测可能是值得的。

于 2017-08-14T19:23:02.763 回答