【问题标题】:Ruby on Rails asset pipeline appears to be adding styles that don't existRuby on Rails 资产管道似乎正在添加不存在的样式
【发布时间】:2015-09-28 14:01:22
【问题描述】:

我完全被这个难住了。我的 SCSS 文件显示如下:

.segmented-control {
  li .field_with_errors label {
      border-color: #db5757;
  }
}

但是当我加载页面并检查 css 时,它会显示:

/* line 1382, /general.scss */
.segmented-control li .field_with_errors label,
.form-item-segmented-control li .field_with_errors label {
  border-color: #db5757;
}

行号 1382 正好指向我显示的第一个代码 sn-p。然而在编译版本中,它包含一个额外的选择器,其中包括 .form-item-segmented-control

我确实在 CSS 的其他地方使用了.form-item-segmented-control,但这里没有。它绝对是嵌套或类似的。

我完全被难住了。关于 Rails 可能在做什么的任何想法?甚至是我如何进一步调试的想法?

【问题讨论】:

    标签: css ruby-on-rails ruby asset-pipeline


    【解决方案1】:

    好的,经过更多调试后,我相信我想通了。看起来这是由于我之前在文件中使用的@extend。我之前没有意识到@extend 的所有效果。

    如果我执行以下操作:

    .form-item-segmented-control {
        @extend .segmented-control;
    }
    

    ever 在文件中,它会将.form-item-segmented-control 选择器添加到所有 次出现的.segmented-control。但是,需要注意的一个重要细微差别是,它不会对其他 SCSS 部分中出现的.segmented-control 执行相同的操作。 @extend 只影响使用它的文件。

    【讨论】:

      猜你喜欢
      • 2018-12-26
      • 1970-01-01
      • 2017-10-29
      • 2018-01-20
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 2017-09-02
      • 2012-02-17
      相关资源
      最近更新 更多