【问题标题】:Rails 4.0, sass, Zurb Foundation: Warning. Error encountered while saving cache ... can't dump anonymous classRails 4.0、sass、Zurb 基金会:警告。保存缓存时遇到错误...无法转储匿名类
【发布时间】:2014-04-12 12:39:16
【问题描述】:

在使用了一段时间的 Bootstrap 之后,我今天想试一试 Zurb Foundation。我更喜欢 Zurb 的网格系统和其他各种元素。

但我注意到我的(几乎是空的)开发应用程序的刷新时间非常慢。当我检查日志时,我看到了几十行,如下所示:

Warning. Error encountered while saving cache 6552595674261f5b11715c13321f2419e14e57a4/_global.scssc: can't dump anonymous class #<Class:0x0000000562f8e0>

只要我对自己的(非常基本的)application.scss 文件进行任何更改,它们就会出现。

@import "foundation_and_overrides";

#container {
  background: #eee;
}

这是迄今为止我在项目中唯一的 css。我项目中的(相关)宝石是:

foundation-rails (5.2.0.0)
sass (3.3.0)
sass-rails (4.0.1)

Zurb 作为依赖项自动安装了 sass gem。

这一切都在我的本地开发机器上,使用 Thin 作为服务器。没有 Heroku 或类似的东西。尝试将本地缓存从file_store更改为memory_store,以防万一,但没有任何区别。

否则它运行良好,css 会按预期呈现,但每次刷新都会非常缓慢,因为缓存失败。任何想法将不胜感激。

【问题讨论】:

标签: ruby-on-rails-4 sass zurb-foundation


【解决方案1】:

嗯,似乎是 sprockets 中的一个错误,您可以在以下问题中看到:https://github.com/nex3/sass/issues/1144。在你的 development.rb 文件中禁用 config.cache_store 将解决错误,但当然不是解决你的问题。

【讨论】:

  • 完全禁用该行只会使应用程序默认为 file_store,因此并没有真正改变任何东西。我想也许将它更改为 null_store 可能会阻止它完全缓存,但这也不起作用,它仍然会尝试转储类(我认为空缓存只会丢弃放入其中的任何内容。)而且,正如你所说,在任何情况下它都不会真正有帮助,因为结果不会被缓存。尽管出现错误,但似乎 css 最终会被缓存,因为后续请求(如果我不更改 css)非常快。
  • 嗯,阅读了您提到的问题报告并点击了几个链接,看起来 Sprockets 团队中的任何人在 3 个月后都没有注意到它。有人在github.com/LRDesign/sass-rails-source-maps 提到了一个临时修复,但它似乎不起作用,至少对我来说。遗憾的是,我现在没有时间深入研究 Sprockets 的内部结构,所以我想暂时回到 Bootstrap 似乎可以避免这个错误。
  • 这已经是几个月的问题了,看来这不是他们的首要任务。它确实回答了您为什么它不起作用的问题,所以如果您接受答案,我将不胜感激,尽管它可能不是您想听到的。
  • 我想给它一天时间,看看是否还有其他问题,但我认为你是对的。哦,好吧:)
【解决方案2】:

我认为这个 SO 问题Heroku: Error encountered while saving cache 的答案可能适用。

基本上,降级到 sass 3.2.13,问题可能会消失,就像我一样。

(哦,你可以切换回 Zurb Foundation,也许 ;-))

【讨论】:

  • 哈哈,谢谢你的提示,我下次有空的时候看看:)
  • 是的...添加 gem 'sass', '3.2.19' 为我解决了这个问题。随后是捆绑更新 sass。它与 sass 3.3.x 有关。使用 Zurb 5.3.3.0 和 Rails 4。
猜你喜欢
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
  • 2014-01-01
  • 2016-05-24
  • 1970-01-01
相关资源
最近更新 更多