如何访问Slim、HAML等中的SASS变量。?

如何访问Slim、HAML等中的SASS变量。?,sass,haml,slim-lang,middleman,Sass,Haml,Slim Lang,Middleman,如何从HTML预处理器(Slim、HAML)直接访问存储在项目资产目录中的SASS变量和mixin 我的意思是如何制作这样的工作: 制作: 身体{ 背景:#fff } 而$color是在lib/_vars.sass中定义的,等于\fff 为什么我需要它?嗯,我需要它用于页面特定的样式和元素,我不想将它们存储在全局样式中 在Middleman+Slim+SASS+Compass环境中,它对我不起作用。鲁比只是说: Error: File to import not found or unre

如何从HTML预处理器(Slim、HAML)直接访问存储在项目资产目录中的SASS变量和mixin

我的意思是如何制作这样的工作:

制作:


身体{
背景:#fff
}
$color
是在
lib/_vars.sass
中定义的,等于
\fff

为什么我需要它?嗯,我需要它用于页面特定的样式和元素,我不想将它们存储在全局样式中

在Middleman+Slim+SASS+Compass环境中,它对我不起作用。鲁比只是说:

Error: File to import not found or unreadable: lib/vars.

我希望有更好的答案,但不幸的是,这是不可能的。

这在Sass 3中是可能的。回顾,这将使您:

  • 使用gem操作保存查找路径的ENV变量
  • 添加一个初始值设定项,将您的路径附加到ENV变量
  • 例如:

    # config/initializers/sass_paths.rb
    require 'sass_paths'
    
    # append a directory, or list of directories to SASS_PATH
    SassPaths.append("#{Rails.root}/app/assets/stylesheets")
    

    正如@steakchaser所说,使用gem是可能的,但是如果您自己处理ENV变量(
    SASS_PATH
    )没有任何问题,您也可以这样做一个简单的附加:

    例如,在config/initializers/assets.rb中 ENV['SASS_PATH']=[“应用程序/资产/样式表”,ENV['SASS_PATH'].presence].compact.join(“:”)
    之后,从添加的文件夹导入的内容将使用Slim和HAML内联样式标记。

    我认为不可能将HAML变量添加到SASSNo,不,不是HAML,而是SASS。所以从SASS到HAML?好吧,也许我的英语不够好,无法正确解释,所以我将尝试更清楚地表达:-)所以,我有一个典型的带有.sass和vars的项目,它被导入到应用程序的main.sass中,编译成应用程序的.css是很常见的。但是我需要一些HTML样式,也可以使用全局SASS变量。我不想手动编写CSS来保持一致性。即使在这样的特殊情况下,我也愿意使用所有SASS的权力。所以我问是否有办法做到这一点。因为它现在不能正常工作。所以是的,从SASS到HAML,你是对的。
    # config/initializers/sass_paths.rb
    require 'sass_paths'
    
    # append a directory, or list of directories to SASS_PATH
    SassPaths.append("#{Rails.root}/app/assets/stylesheets")