在 Rails 中的所有样式表文件中携带 Sass 个变量

Carry Sass variables across all stylesheet files in Rails

我有一个 site_settings.scss 文件,其中包含我的 Rails 应用程序的所有变量:

app/assets/stylesheets/site_settings.scss

$primary_color: #4285F4;
$dark_color: #333333; 
...

现在,如果我想在文件中使用这些变量,我需要在该文件中执行此操作:

import 'site_settings.scss'

我需要把它放在我想使用这些变量的每个文件的开头,否则Rails会给我Undefined variable:错误.

我试过将 import 'site_settings.scss' 放在 application.scsscustom.scss 中,但两者都没有他们正在工作。

我也试过在aplication.scss中使用require 'site_settings'并将application.scss重命名为application.css.scss 如此处所述:http://mildlyinternet.com/code/scss-variables-asset-pipeline.html ,但它仍然无法正常工作。

这是我的 application.scss:

/*
 *= require_self
 *= require font-awesome 
 */

@import "bootstrap-sprockets";
@import "bootstrap";
@import "custom";
@import "devise";
@import "site_settings";

那么,我该如何解决这个问题,这样我就不必每次都在每个文件中都写 import 'site_settings.scss'

您应该重命名所有将使用共享变量的文件以 _ 开头。 这将在部分文件的上下文中呈现其他文件,这将使用先前在 @import 'site_settings' 中声明的变量。所以你会有 site_settings.scssquickrails/_general.scss, quickrails/_media_query.scss 等等。

这些导入被认为是局部的,这就是为什么名称应该以下划线开头,但在导入时你可以不用它。这是关于这个的material:

将任何相关的 = require 替换为 @import 并删除任何 = require,即使您认为您已将其注释掉也是如此。