Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 重写CoreUI变量_Ruby On Rails_Sass_Bootstrap 4_Core Ui - Fatal编程技术网

Ruby on rails 重写CoreUI变量

Ruby on rails 重写CoreUI变量,ruby-on-rails,sass,bootstrap-4,core-ui,Ruby On Rails,Sass,Bootstrap 4,Core Ui,这里有一个gem,它使用CoreUI,这是一个引导管理模板 现在,模板覆盖了引导颜色,我想再次将它们覆盖为我的颜色(特别是-primary),这样当我使用例如btn primary类时,按钮将具有我的颜色。我试过了,但没用 _core-variables.scss文件 $blue: #2482dc; $colors: ( "blue": $blue ); $theme-colors: ( "primary": $blue ) @import "coreui-free"

这里有一个gem,它使用CoreUI,这是一个引导管理模板

现在,模板覆盖了引导颜色,我想再次将它们覆盖为我的颜色(特别是
-primary
),这样当我使用例如
btn primary
类时,按钮将具有我的颜色。我试过了,但没用

_core-variables.scss文件

$blue:    #2482dc;

$colors: (
    "blue": $blue
);

$theme-colors: (
    "primary": $blue
)
@import "coreui-free";
@import "core-variables";
application.scss文件

$blue:    #2482dc;

$colors: (
    "blue": $blue
);

$theme-colors: (
    "primary": $blue
)
@import "coreui-free";
@import "core-variables";
更新

我尝试了Bootstrap或CoreUI中的
@include
函数,在这两种情况下,尽管已导入CoreUI rails gem,但它们都未定义:

另一次更新

经过更多的研究和尝试,我发现我只能使用以下代码覆盖
.btn primary

.btn-primary {
    @include button-variant(theme-color("primary"), theme-color("primary"));
}
这很好,但它违背了主题颜色的全部目的。通过此链接 bootstrap承诺:

“Bootstrap的许多组件和实用程序都是通过迭代Sass映射的
@循环构建的。这对于通过
$theme colors
生成组件的变体以及为每个断点创建响应变体特别有用。当您自定义这些Sass映射并重新编译时,您将自动看到这些循环中反映的更改。”

是我做错了还是gem有问题?我不是Ruby开发人员,我只是想让前端部分正常工作


任何帮助都将不胜感激。

我认为您遇到了css专用性问题。我会尝试将
@import“核心变量”
放在第一位,如果这不起作用,您可以始终在变量之后添加
!important
,以确保它们的专用性优先。

哈利路亚

因此,事实证明,问题确实出在这块宝石上

我发现
\u core-variables
需要在
coreui-free
文件之前导入。因此我将application.scs更改为:

@import "core-variables";
@import "coreui-free";
但它仍然不起作用,所以我检查了这个
coreifree
文件的作用。它看起来像这样:

@import "flag-icon/flag-icon";
@import "font-awesome-sprockets";
@import "font-awesome";
@import "simple-line-icons/simple-line-icons";
@import "bootstrap-variables";
@import "bootstrap";
@import "coreui/core";
事实证明,
bootstrap变量
实际上每次都覆盖了我的
核心变量。我需要更改导入顺序:

@import "bootstrap-variables";
@import "_core-variables";
@import "flag-icon/flag-icon";
@import "font-awesome-sprockets";
@import "font-awesome";
@import "simple-line-icons/simple-line-icons";
@import "bootstrap";
@import "coreui/core";
现在覆盖
primary
颜色就这么简单:

$theme-colors: (
    primary: #2482dc
);

谢谢,但恐怕不是这样。我更新了问题