在Rails 4.2中手动编译Sass

时间:2015-05-18 19:53:42

标签: ruby-on-rails sass

我在Rails 4.2应用程序中手动编译Sass,并且我遇到了Sass' @进口。它给了我以下错误 - "要导入的文件未找到或不可读......"这是一个代码段。

scheme_css_dir = "#{Rails.root}/app/assets/schemes/#{scheme}/css"
template = File.read("#{scheme_css_dir}/styles.css.scss")

engine = Sass::Engine.new(template, { 
  :syntax => :scss,
  :cache => false,
  :read_cache => false,
  :style => :compressed,
  :load_paths => [scheme_css_dir]
})
output = engine.render

styles.css.scss包含几个@import语句,它在第一个语句中失败。这是第一个看起来的样子。

@import "./flexslider";

在style.css.scss所在的目录中有一个flexslider.css.scss文件。我在:load_paths选项中提供该目录。有趣的是,如果我将@import行更改为...

@import "./flexslider.css.scss";

...然后它到达文件中的下一个@import行 - 它会抛出相同的错误。此style.css.scss清单在部署期间成功符合(不添加所有@imports的扩展名)。

我错过了什么?是否需要额外的配置才能使用Sass :: Engine来编译css清单,就像Rails在部署期间一样?

仅供参考 - 我使用的是最新版本的sass-rails(5.0.3)。

非常感谢任何帮助。谢谢!

更新:感谢papirtiger的评论,我能够通过将.css.scss中的文件扩展名更新为.scss来解决@import的问题。但是,我仍然遇到资产助手的错误 - 特别是image-url和font-url。这是我看到的错误......

未定义的方法`[]'为零:NilClass

sprockets(3.1.0)lib / sprockets / sass_processor.rb中的sprockets_context方法发生错误

def sprockets_context
  options[:sprockets][:context]
end

关于如何通过这个障碍的任何想法?

0 个答案:

没有答案