Rails未初始化常量Sprockets :: SassCacheStore。

3

我刚开始接触Rails,正在尝试使用gem等工具进行开发。

我的问题是,在我的网站上有一个导航菜单,我需要获取当前页面的链接并将其设置为选中状态。我不想构建一个helper函数,而是想安装一个gem。于是我搜索并找到了这个

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

在我的Gemfile文件中添加 gem 'rack_current_page'

然后在项目根目录下的config.ru文件中:

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

最后,我运行了:bundlerails s,结果发现出现了错误:uninitialized constant Sprockets::SassCacheStore。这个错误发生在将应用样式表包含在布局文件中时。我使用以下软件包/版本(仅列出可能有影响的内容 - 如果我漏掉了什么,请告诉我):
  • Rails 4.2.1
  • Sprockets 3.0.0
  • Sass 3.4.13
  • Rack 1.5
在卸载过程中,我删除了我添加的每一行 - 我还重置了我的项目文件到HEAD,因为我只是刚开始工作,然后运行了一个新的bundle,重新启动了服务器,检查了网站,但我得到的仍然是上面的错误... 我谷歌搜索并尝试寻找类似的问题,但找不到任何答案,所以我唯一能真正尝试的就是卸载并重置我的git。我肯定是在看一些非常愚蠢的东西,但真的找不到答案,所以我来问了;)

任何帮助都将不胜感激,提前致谢,如果我错过了你们需要的信息,请留言。

写作时间

实际上,我使用gem pristine --all进行了快速操作,但没有得到任何结果。

编辑1

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

它确实起作用了。然后我继续重新安装compass-rails,它仍然在工作...现在有些困惑了:S

1个回答

7

好的,下面开始:

我找到了问题所在,并通过提供适用于rails 4.2的版本来解决它。

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

当我按照这里所示添加了具体版本并再次运行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)

我猜只是在等待罗盘发布兼容版本。


你的 gem 文件长什么样子?你收到这条消息了吗?“bundle”当前锁定在3.3.4的 sprockets。 - Defoncesko
@Defonesko 这个问题已经得到了解答,但是提醒一下:我没有收到锁定宝石的消息。 - SidOfc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接