尝试使用Sass Maps(看起来像对象变量)时出现以下错误:
Invalid CSS after " primary": expected ")", was ": #3097D1," (in /Users/.../app/assets/stylesheets/new_design.scss:19)
我使用以下最小例子重现了错误:
$theme-colors: (
primary: #3097D1,
secondary: black
);
@each $key, $val in $theme-colors {
.foo.#{$key} {
color: $val;
}
}
预期:
.foo.primary {
color: #3097D1;
}
.foo.secondary {
color: black;
}
但是提到了错误。
sass-rails, ~> 5.0.0
似乎是根据Gemfile
:
gem 'sass-rails', '~> 5.0.0'
我假设加载了一个应该支持对象变量的最新sass版本。
我觉得我当前的版本没有认识到这种语法。
如何确保我拥有合适的sass版本?还有什么我需要做的才能成功编译这个语法吗?
bundle show sass-rails
显示5.0.6
,这似乎是最近的。
答案 0 :(得分:1)
正如评论中所讨论的那样,对map
sass语法的类似问题进行了stackoverflow讨论
我引用
缩进语法存在许多问题,Sass维护者不会修复它们。 :(他们说,.sass解析器很奇怪,难以重构。
我发现Sass语法更快,更容易阅读。它被剥夺了视觉噪音:
indented_vs_bracketed
复制粘贴也更容易。
所以Sass维护者,请不要让缩进语法落后!
可能通过深入讨论我们将能够找到解决方案。现在我引用帖子Ionică Bizău的所有者的解决方案:
将值包装在引号之间,在浏览器中保存,重新加载而没有任何错误,然后删除引号并在浏览器中重新加载页面解决了问题。也许这是在某处缓存的东西......但我无法理解在哪里。我没有重启rake或运行任何捆绑命令......谢谢! :)