6

Stworzyłem silnik Rails dla zasobów. Nie używam kółek do css. Zamiast tego polegam na @import sassa. To działa perfekcyjnie w teście/manekina aplikacji, ale w aplikacji Rails, która jest wymagająca silnik, utrzymuje rzucanieImport Sass z silnika szyn nie działa

Sass::SyntaxError: File to import not found or unreadable: gumby. 

I byli na to za chwilę, a pierwotnie ścieżka nie była w ścieżka obciążenia dla sass. Ale potem dodał

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

do mojego config/application.rb a teraz to na pewno pokazuje prawidłową ścieżkę do pliku próbuję zaimportować. Jest to drugi co do ostatniej ścieżki wymienionych w poniższej śladu:

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/[email protected]/gems/angularjs-rails-1.0.7/vendor/assets/javascripts 
    /Users/brandon/.rvm/gems/[email protected]/gems/turbolinks-2.2.2/lib/assets/javascripts 
    /Users/brandon/.rvm/gems/[email protected]/gems/jquery-rails-3.1.0/vendor/assets/javascripts 
    /Users/brandon/.rvm/gems/jruby-1.7[email protected]/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 

drzewie silnika szynach wygląda tak

app/ 
    assets/ 
    stylesheets/ 
     gumby/ 
     ... 
     gumby.css.scss 

(wiem, że technicznie należy przestrzeni nazw wszystkie swoje aktywa w silniku, ale nie chciałem mieć gumy/gumby i mam wrażenie, że szanse na zderzenie nazwy są niewielkie.)

W aplikacji testowej/atrapa mogę zaimportować ten plik przez @import 'gumby';, ale to się nie powiedzie w Railsach aplikacja. Z powyższym wyjątkiem. Jak to działa?

A tak przy okazji, jest to aplikacja Rails 4.1, a odpowiedzi na kilka innych "podobnych" pytań wynikają z używania grup w Gemfile. Railsy 4 pozbyły się grup, więc nie jest to problem/rozwiązanie.

Odpowiedz

2

więc rozwiązanie było dla mnie ssać go i przestrzeni nazw go gumby/gumby. Wtedy miałem też zmianę config/application.rb do:

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

I z jakiegoś powodu modular-scale nie był prawidłowo wymagane, mimo że silnik już wymagana go. Więc musiałem zmienić application.css.scss na application.css.scss.erb i umieścić <% require 'modular-scale' %> u góry.

+1

Wreszcie! W Railsach 4.2.1 miałem sporo czasu, zastanawiając się, jak dodać ścieżkę loadSass. 'config.sass.load_paths',' Sass :: Engine :: DEFAULT_OPTIONS [: load_paths] 'i' Sass :: Plugin.options [load_paths] 'wydają się nie mieć żadnego efektu (inaczej niż w oryginalnym pytaniu, nie widziałem ścieżka podana w śladzie), ale działa 'config.assets.paths' .. –

+0

Pomyśl o tym, może moim problemem było to, że musiałem dodać ścieżkę inną niż Sass - widzę, że mój błąd pochodzi z' ActionView :: Szablon :: Błąd', a nie 'Sass :: SyntaxError'. Mimo to ta odpowiedź najwyraźniej rozwiązała mój problem. –

2

to powinieneś napisać to tak:

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

lub spróbuj tego (niesprawdzone)

@import_tree 'gumby'; 
+0

Wygląda na to, że mógłbym rozwiązać mój problem, o ile nie rozwiązałem go jeszcze inaczej. – Brandon

Powiązane problemy