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

Ruby on rails 在Rails中的所有样式表文件中携带Sass变量,ruby-on-rails,ruby-on-rails-5,stylesheet,Ruby On Rails,Ruby On Rails 5,Stylesheet,我有一个site\u settings.scss文件,其中包含Rails应用程序的所有变量: app/assets/stylesheets/site_settings.scss $primary_color: #4285F4; $dark_color: #333333; ... 现在,如果我想在文件中使用这些变量,我需要在该文件中执行以下操作: import 'site_settings.scss' 我需要把它放在我想要使用这些变量的每个文件的开头,否则Rails会给我未定义的变量:错误

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

app/assets/stylesheets/site_settings.scss

$primary_color: #4285F4;
$dark_color: #333333; 
...
现在,如果我想在文件中使用这些变量,我需要在该文件中执行以下操作:

import 'site_settings.scss'
我需要把它放在我想要使用这些变量的每个文件的开头,否则Rails会给我未定义的变量:错误

我已尝试将
import'site\u settings.scss'
放入应用程序.scsscustom.scss中,但两者都不起作用

我还尝试在应用程序.scss中使用
要求“站点设置”
,并将application.scss重命名为应用程序.css.scss,如下所述:,但它仍然不起作用

这是我的申请。scss:

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

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

那么,我该如何解决这个问题,这样我就不必每次都在每个文件中写入
import'site\u settings.scs'

您应该重命名所有将使用共享变量的文件,以
开头。
这将在部分文件的上下文中呈现其他文件,部分文件将使用
@import'site\u settings'
中先前声明的变量。因此,您将拥有
site\u settings.scss
quickrails/\u general.scss
quickrails/\u media\u query.scss
等等

这些导入被视为部分导入,这就是为什么名称应以下划线开头,但在导入时不使用下划线。以下是关于这方面的材料:


@import
替换任何相关的
=require
,并删除任何
=require
,即使你认为你已经注释掉了它。

你能发布application.css的内容吗?@PatrickO'Grady我已经在帖子上添加了它。你试过像链接文章中那样设置它吗?你有
application.css
,有一个
*=require file\u name
语句,然后是
file\u name.scss
和所有导入?@PatrickO'Grady是的,这就是为什么我在这里发帖的原因,因为没有work@PatrickO“Grady如果你想查看这些文件,可以在github上点击这里: