Ruby Rails 资产管道似乎正在添加不存在的样式
Ruby on Rails asset pipeline appears to be adding styles that don't exist
我完全被这个难住了。我的 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 正好指向我展示的第一个代码片段。然而在编译版本中,它包含一个额外的选择器,其中包括 .form-item-segmented-control
.
我在 CSS 的其他地方确实使用了 .form-item-segmented-control
,但这里没有。而且绝对不是嵌套或类似的东西。
我完全被难住了。关于 Rails 可能在做什么的任何想法?甚至关于如何进一步调试的想法?
好的,经过更多的调试,我相信我明白了。看起来这是由于我之前在文件中使用的 @extend
。我以前没有意识到 @extend
的所有效果。
看起来如果我做这样的事情:
.form-item-segmented-control {
@extend .segmented-control;
}
ever 在文件中,然后它将 .form-item-segmented-control
选择器添加到 all 出现的 .segmented-control
.但是,需要注意的一个重要细微差别是,它不会对其他 SCSS 部分中出现的 .segmented-control
执行相同的操作; @extend
仅影响使用它的文件。
我完全被这个难住了。我的 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 正好指向我展示的第一个代码片段。然而在编译版本中,它包含一个额外的选择器,其中包括 .form-item-segmented-control
.
我在 CSS 的其他地方确实使用了 .form-item-segmented-control
,但这里没有。而且绝对不是嵌套或类似的东西。
我完全被难住了。关于 Rails 可能在做什么的任何想法?甚至关于如何进一步调试的想法?
好的,经过更多的调试,我相信我明白了。看起来这是由于我之前在文件中使用的 @extend
。我以前没有意识到 @extend
的所有效果。
看起来如果我做这样的事情:
.form-item-segmented-control {
@extend .segmented-control;
}
ever 在文件中,然后它将 .form-item-segmented-control
选择器添加到 all 出现的 .segmented-control
.但是,需要注意的一个重要细微差别是,它不会对其他 SCSS 部分中出现的 .segmented-control
执行相同的操作; @extend
仅影响使用它的文件。