Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 在config.rb中为scss文件创建scss变量_Ruby_Ruby On Rails 3_Sass_Compass Sass - Fatal编程技术网

Ruby 在config.rb中为scss文件创建scss变量

Ruby 在config.rb中为scss文件创建scss变量,ruby,ruby-on-rails-3,sass,compass-sass,Ruby,Ruby On Rails 3,Sass,Compass Sass,如何在Config.rb中为SCSS文件[COMPASS project]定义SCSS变量 我的用例 在Config.rb文件中 a = true 在style.scss中,我喜欢使用如下变量 @if a == true{ background: #fff; } @else { background: #000; } 解决方案之一 但这对我不起作用 你不能/不应该这样做。您将预编译资产,因此无法动态地适应不断变化的变量。这可能适用于config.rb变量,但这是一种不好的

如何在Config.rb中为SCSS文件[COMPASS project]定义SCSS变量

我的用例

在Config.rb文件中

a = true
在style.scss中,我喜欢使用如下变量

@if a == true{
     background: #fff;
} 
@else {
   background: #000;
}
解决方案之一


但这对我不起作用

你不能/不应该这样做。您将预编译资产,因此无法动态地适应不断变化的变量。这可能适用于config.rb变量,但这是一种不好的使用模式,每次更改变量时都必须重新编译资产,这与在sass中执行if-else检查的目的背道而驰

更简单的方法是在元素(主体)上添加类
.active
.inactive
。或者根据已登录的用户,在您的头脑中输出内联css,如自定义颜色等

你想干什么?听起来你应该做些什么来检查你是在生产还是在开发?在这种情况下,您可以执行以下操作:

<body class='<%= "development" if Rails.env == 'development' %>'>

甚至

<body <%= "style='background-color: red;'" if Rails.env == 'development' %>

首先,你看过和吗

如果您真的试图将外部变量传递给SASS,那么您必须了解,在编译CSS时,SASS并不知道您的配置文件。(Haml的主要开发人员之一),最好的方法是创建自定义

如果你走那条路(再次引用内森的话):

您需要确保您的样式表 在数据更改时重新生成。你可以打电话来
Sass::Plugin.force\u update\u样式表


可能重复的Thx为您的答复,是的,我想重新生成样式表。我需要这个来创建带有单个scss文件的**RTL和LTR**样式表。Thx供您回复,是的,我想重新生成样式表。我需要它来创建带有单个scss文件的**RTL和LTR**样式表。