ruby-on-rails - rails 未初始化常量 Sprockets::SassCacheStore

标签 ruby-on-rails ruby sass gem sprockets

我是 Rails 的新手,正在尝试使用 gems 等。

我的情况是我的网站上有这个导航菜单,我需要选择 current_page 链接。我不想构建一个助手,而是想安装一个 gem,所以我去找了一个并找到了 this one .

然后我按照文档所说的进行操作:

在我添加的 gemfile 中 gem 'rack_current_page'

然后在项目根目录config.ru

require ::File.expand_path('../config/environment', __FILE__)
use Rack::CurrentPage
run Rails.application

最后我跑了:

bundlerails s 才发现我有这个错误:

未初始化的常量 Sprockets::SassCacheStore

在布局文件中包含应用程序样式表时发生错误。

我正在使用以下软件包/版本(仅列出可能会产生影响的内容 - 如果我遗漏了什么请告诉我)

(< gem > -v)

  • rails 4.2.1
  • sprockets 3.0.0
  • 萨斯 3.4.13
  • 机架 1.5

在进行卸载时,我删除了我添加的每一行 - 哎呀,我还重置了我的项目文件,因为我刚刚开始处理它, 运行一个新的包,重新启动服务器,检查站点,但我得到的只是上面的错误..

我用谷歌搜索并试图在 SO 上寻找类似的问题,但找不到任何问题,所以我唯一真正可以尝试的是卸载并重置我的 git。

我肯定在看一些非常愚蠢的东西,但找不到真正的答案,所以我在这里 ;)

感谢任何帮助,如果我错过了你们需要的信息,请提前致谢并发表评论。

写作时间

我实际上做了一个快速的 gem pristine --all 也没有结果。

编辑 1

好的,所以在(短)过去导致重新创建一个新应用程序之前发生了一些猜测和相同的情况,我卸载了 compass-rails gem 并运行了 bundle 然后 rails s 测试是否开始工作。

确实如此。然后我继续重新安装 compass-rails 它继续工作......现在变得很困惑:S

最佳答案

好的,开始吧:

我发现了这个问题,并通过实际提供一个适用于 rails 4.2 的版本解决了这个问题。

默认的 gem compass-rails 安装了一个与 sprockets 不兼容的版本。

当我添加具体版本时看到 here 并运行另一个 bundle 我在问题中命名的大多数包的版本都发生了变化。

包含修改 gemfile 后的控制台输出:

Installing sprockets 2.12.3 (was 3.0.0)
Using sprockets-rails 2.3.1 (was 2.2.4)
Installing sass-rails 5.0.1 (was 5.0.3)
Installing compass-rails 2.0.4 (was 2.0.1)

估计是在等compass出兼容版本吧。

关于ruby-on-rails - rails 未初始化常量 Sprockets::SassCacheStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641655/

相关文章:

javascript - 使用 JavaScript 插入 ERB

ruby-on-rails - 从 Rails 应用程序发送短信

ruby-on-rails - 条件与变量的关系

ruby-on-rails - 错误 : "unexpected keyword else, expected keyword end"?

ruby-on-rails - 我应该关心 Newrelic Rails 应用程序中的 DOM 处理时间吗?

javascript - 如何执行复杂的Javascript代码?

ruby - 如何在 Ruby 中使用键进行深度转换值?

css - 如何使用媒体查询覆盖默认样式

css - Sass - 一个标签中的两个类

sass - SCSS中间选择器 "Or"