Ruby on rails 从rails引擎导入的Sass不工作

Ruby on rails 从rails引擎导入的Sass不工作,ruby-on-rails,sass,asset-pipeline,rails-engines,ruby-on-rails-4.1,Ruby On Rails,Sass,Asset Pipeline,Rails Engines,Ruby On Rails 4.1,我已经为资产创建了一个Rails引擎。对于css,我不使用链轮。相反,我依赖于sass的@import。这在test/dummy应用程序中工作得非常好,但在需要引擎的Rails应用程序中,它会不断抛出 Sass::SyntaxError: File to import not found or unreadable: gumby. 我在这方面已经有一段时间了,最初该路径不在sass的加载路径中。但后来我又加了一句 config.sass.load_paths << "#{Gem.l

我已经为资产创建了一个Rails引擎。对于css,我不使用链轮。相反,我依赖于sass的@import。这在test/dummy应用程序中工作得非常好,但在需要引擎的Rails应用程序中,它会不断抛出

Sass::SyntaxError: File to import not found or unreadable: gumby.
我在这方面已经有一段时间了,最初该路径不在sass的加载路径中。但后来我又加了一句

config.sass.load_paths << "#{Gem.loaded_specs['gumby_on_rails'].full_gem_path}/app/assets/stylesheets"
rails引擎的树如下所示

app/
  assets/
    stylesheets/
      gumby/
        ...
      gumby.css.scss
(我知道从技术上讲,您应该在引擎中为所有资产命名,但我不想使用gumby/gumby,我觉得名称冲突的可能性很小。)

因此,在测试/虚拟应用程序中,我可以通过
@import'gumby'导入此文件,但这在Rails应用程序中失败。除上述例外。我怎样才能让它工作


顺便说一句,这是一个Rails 4.1应用程序,其他几个“类似”问题的答案都是由于在文件中使用了组。Rails 4去掉了组,因此这不是问题/解决方案。

那么您应该这样写:

config.sass.load_paths << "#{Gem.loaded_specs['gumby_on_rails'].full_gem_path}/app/assets/stylesheets/gumby"

因此,我的解决方案是吸收它并将其命名为
gumby/gumby
。然后我还必须将
config/application.rb
更改为:

config.assets.paths << "#{Gem.loaded_specs['gumby_on_rails'].full_gem_path}/app/assets/stylesheets"

config.assets.path如果我没有用另一种方法解决问题,这看起来可能已经解决了我的问题。最后!在Rails 4.2.1中,我花了很长时间研究如何添加Sass加载路径
config.sass.load_路径
sass::Engine::DEFAULT_OPTIONS[:load_路径]
,和
sass::Plugin.OPTIONS[load_路径]
似乎没有任何效果(与原始问题不同,我没有看到跟踪中列出的路径),但是
config.assets.path
可以工作……想想看,可能我的问题是我需要添加一个非Sass路径——我看到我的错误来自
ActionView::Template::error
,而不是
Sass::SyntaxError
。尽管如此,这个答案似乎解决了我的问题。
@import_tree 'gumby';
config.assets.paths << "#{Gem.loaded_specs['gumby_on_rails'].full_gem_path}/app/assets/stylesheets"