6

Ho creato un motore Rails per le risorse. Non uso pignoni per css. Invece, mi affido a sass @import. Questo funziona perfettamente bene nel test/app manichino, ma in app Rails che sta richiedendo il motore, mantiene gettandoImportazione Sass da motore rotaie non funzionante

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

Sono stato a questo per un po ', e in origine il percorso non ero in il percorso di caricamento per sass. Ma poi ho aggiunto

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

alla mia config/application.rb e ora si vede definitivamente il percorso corretto per il file che sto cercando di importare. E 'la seconda per l'ultimo percorso elencato nella seguente traccia:

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/[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 

albero del motore di rotaie appare così

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

(so che tecnicamente si dovrebbe namespace tutti i vostri beni in un motore, ma non volevo avere il gumby/gumby, e sento che le probabilità di uno scontro di nomi sono ridotte.)

Quindi nell'app test/fittizio posso importare questo file tramite @import 'gumby';, ma questo non funziona nelle Rotaie app. Con la suddetta eccezione. Come posso farlo funzionare?

E a proposito, questa è un'app Rails 4.1, e le risposte a molte altre domande "simili" sono tutte dovute all'utilizzo di gruppi nel Gemfile. Rails 4 si è sbarazzato dei gruppi quindi questo non è il problema/soluzione.

risposta

2

Quindi la soluzione per me è stato quello di aspirare e spazio dei nomi è gumby/gumby. Poi ho anche dovuto cambiare il config/application.rb a:

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

E per qualche ragione modular-scale non veniva richiesto correttamente, anche se il motore già lo richiedeva. Quindi ho dovuto cambiare application.css.scss a application.css.scss.erb e inserire <% require 'modular-scale' %> nella parte superiore.

+1

Finalmente! Con Rails 4.2.1, ho avuto un po 'di tempo a capire come aggiungere un Sass load_path. 'config.sass.load_paths',' Sass :: Engine :: DEFAULT_OPTIONS [: load_paths] 'e' Sass :: Plugin.options [load_paths] 'sembrano non avere alcun effetto (a differenza della domanda originale, non ho visto il percorso elencato nella traccia), ma 'config.assets.paths' funziona .. –

+0

Vieni a pensarci, forse il mio problema era che avevo bisogno di aggiungere un percorso non Sass: vedo che il mio errore era da' ActionView :: Template :: Error', non 'Sass :: SyntaxError'. Tuttavia, questa risposta sembra aver risolto il mio problema. –

2

allora si dovrebbe scrivere in questo modo:

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

o provare questo (non testato)

@import_tree 'gumby'; 
+0

Sembra che potrebbe aver risolto il problema, se non l'avessi già risolto in un altro modo. – Brandon

Problemi correlati