我为资产创建了一个 Rails 引擎。我不将链轮用于 css。相反,我依赖 sass 的 @import。这在测试/虚拟应用程序中工作得非常好,但在需要引擎的 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"
到我的config/application.rb
,现在它肯定显示了我要导入的文件的正确路径。它是以下跟踪中列出的倒数第二个路径:
Sass::SyntaxError: File to import not found or unreadable: gumby.
Load paths:
CompassRails::SpriteImporter
CompassRails::SpriteImporter
CompassRails::SpriteImporter
CompassRails::SpriteImporter
CompassRails::SpriteImporter
CompassRails::SpriteImporter
CompassRails::SpriteImporter
CompassRails::SpriteImporter
CompassRails::SpriteImporter
/Users/brandon/code/personal/blog_update/app/assets/images
/Users/brandon/code/personal/blog_update/app/assets/javascripts
/Users/brandon/code/personal/blog_update/app/assets/stylesheets
/Users/brandon/code/personal/blog_update/vendor/assets/javascripts
/Users/brandon/code/personal/blog_update/vendor/assets/stylesheets
/Users/brandon/.rvm/gems/jruby-1.7.11@blog/gems/angularjs-rails-1.0.7/vendor/assets/javascripts
/Users/brandon/.rvm/gems/jruby-1.7.11@blog/gems/turbolinks-2.2.2/lib/assets/javascripts
/Users/brandon/.rvm/gems/jruby-1.7.11@blog/gems/jquery-rails-3.1.0/vendor/assets/javascripts
/Users/brandon/.rvm/gems/jruby-1.7.11@blog/gems/coffee-rails-4.0.1/lib/assets/javascripts
/Users/brandon/code/personal/gumby/app/assets/stylesheets
/Users/brandon/code/personal/blog_update/app/assets/stylesheets
Rails 引擎的树看起来像这样
app/
assets/
stylesheets/
gumby/
...
gumby.css.scss
(我知道从技术上讲,您应该在引擎中命名所有资产,但我不想使用 gumby/gumby,而且我觉得名称冲突的可能性很小。)
因此,在测试/虚拟应用程序中,我可以通过 导入此文件@import 'gumby';
,但在 Rails 应用程序中失败。除上述例外。我如何让这个工作?
顺便说一句,这是一个 Rails 4.1 应用程序,其他几个“类似”问题的答案都是由于在 Gemfile 中使用了组。Rails 4 摆脱了组,所以这不是问题/解决方案。