Rails预编译CSS中的错误

时间:2012-03-28 16:32:40

标签: ruby-on-rails precompile

Invalid CSS after "}": expected selector or at-rule, was "}"
  (in /home/test/www/dispatch/app/assets/stylesheets/application.css)
(sass):364

以上错误是我的预编译中发生的错误,我无法找到问题。我已尝试将文件重命名为application.css.scss,我收到相同的错误,其中包含不同的行号:405

令我难过的是这个文件只包含159行,所以我不确定该行号的来源。

我正在我的本地计算机上进行预编译,因为昨晚发生此错误是为了尝试进行生产迁移。

5 个答案:

答案 0 :(得分:14)

如果是你的application.css那么它会把你所有的css编译成那个文件,所以有可能问题不在那个文件本身,而是在一个文件中编译成它。检查代码是否缺少分号。

答案 1 :(得分:3)

我讨厌这些错误,因为他们没有提供任何堆栈跟踪。所以一旦发生这种情况,你就不得不花费数小时去搜索那个分号。我希望Rails'伙计们很快就会解决这个问题。

与此同时,我发现了一种很好的方法来检测这些错误,方法是将它们传递给CSS编译器或压缩器。在我的应用程序中,我们使用SASS,所以我可以打电话:

sass --style compressed --scss -C your_problematic_file.css

它会告诉您该文件是否有任何错误以及行号。你需要在每个可能是罪魁祸首的CSS文件上运行它。

就我而言,媒体查询是额外的}

答案 2 :(得分:2)

我同意@Digi_Cazter。但是由于放置了像

这样的无效括号,可能会发生同样的错误
.someclass{
  property: value;
}}

答案 3 :(得分:1)

我错过了分号。在该行的末尾宣布“$ grayMediumLight”时,我的工作被取消了。也许这会为我节省30分钟的时间。

答案 4 :(得分:0)

很高兴你发现了你的错误并修复了它,但是我想为像我这样的其他新手解释一下,可能需要在不同的地方寻找他们的修复。

我刚刚遇到了这个问题,对我来说,example.css.scss预编译为/ public中的example.css,并且在媒体查询的末尾添加了一个额外的“}” - 在/public/example.css中即使/example.scss.css中没有错误

对于遇到此问题的其他人,请将您的SCSS和CSS与Kaleidoscope之类的内容进行比较,以检查在预编译过程中出现的任何语法错误,并从那里进行故障排除。