【问题标题】:What is causing this error when I try to use a Compass variable?当我尝试使用 Compass 变量时导致此错误的原因是什么?
【发布时间】:2013-01-22 16:35:09
【问题描述】:

application.css.scss

@import 'compass';
$var: 28em;
@media only screen and (min-width: $var) {
  font-size: 120%;
}

当我尝试访问一个页面(在开发中)时,会出现这个 Rails 错误:

Sass::SyntaxError at /today
Invalid CSS after "...nd (min-width: ": expected expression (e.g. 1px, bold), was "$var) {" (in /Users/ben/rails_projects/test_app/app/assets/stylesheets/application.css.scss)

如果我将 application.css.scss 更改为直接使用28em,而不是$var,则效果很好:

@import 'compass';
$var: 28em;
@media only screen and (min-width: 28em) {
  font-size: 120%;
}

为什么我无法使用$var

我正在使用

  • Rails 3.2.11
  • 红宝石 1.9.3
  • 罗盘 0.12.2
  • 指南针轨道 1.0.3
  • sass 3.1.12
  • sass-rails 3.2.3

宝石文件

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
  gem 'compass-rails'
end

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 compass-sass


    【解决方案1】:

    我建议您避免在清单文件前面加上前缀 application.css 。如果您想添加样式,请在assets 目录之一中创建一个新的css.scss 文件并在清单文件中要求它。 This guide 有一些处理资产管道的有价值的规则。

    【讨论】:

    • 对不起,我应该提到我只是以这种方式设置它来隔离这个错误。在实际设置中,清单文件中没有样式。
    • 您是否尝试过插值:#{$var},它在表达式内部,我认为...
    • 两种变体(带有纯 $var 和 interpolated )似乎都通过了sass-lang site 上的渲染验证。scss 预处理器(sass-rails gem)安装好吗?
    • 插值没有任何作用。我忘记在问题中包含 sass-rails 信息,已添加它以及一些 Gemfile。
    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多