我在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
关于如何通过这个障碍的任何想法?