我为资产创建了一个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摆脱了组,所以这不是问题/解决方案 .
2 回答
因此,我的解决方案是将其吸取并命名为
gumby/gumby
. 然后我还必须将config/application.rb
更改为:由于某种原因
modular-scale
没有被正确要求,即使引擎已经需要它 . 所以我不得不将application.css.scss
更改为application.css.scss.erb
并将<% require 'modular-scale' %>
置于顶部 .那么你应该这样写:
或试试这个(未经测试)