Znalazłem się przed dziwnym zachowaniem zadania assets:precompile
lub przynajmniej przed czymś, czego nie rozumiem w pełni.Zasoby szyny: prekompiluj dziwne zachowanie
Używam Rails 3.1.3, Sprockets 2.0.3, Less 2.0.11 dla mojej aplikacji webowej, a także polegam na Bootstrap dla layoutu, więc używam również less-rails 2.1.8 i mniej -rails-bootstrap 2.0.8. Dostosowałem styl, tak jak mówią: here.
Konfiguracja moich aktywów jest:
stylesheets
|--application.css.scss
|--custom-style/
|--variables.less
|--mixins.less
|--buttons.less
|--custom-style.css.less
W application.css.scss zrobić
//=require custom-style
aw niestandardowego stylu zrobić
@import "twitter/bootstrap/reset";
//@import "twitter/bootstrap/variables"; // Modify this for custom colors, font-sizes, etc
@import "custom-style/variables";
//@import "twitter/bootstrap/mixins";
@import "custom-style/mixins";
// And all the other standar twitter/bootstrap imports...
// Other custom-style files to import
@import "custom-style/buttons"
//...
// And other rules here
//...
Wreszcie w buttons.less
Używam niektórych zmiennych i mixin zdefiniowanych w variables.less
i mixins.less
B Pliki ootstrap, @white
i .buttonBackground
są bardziej szczegółowe.
Gdybym uruchomić bundle exec rake assets:precompile
z powyższej konfiguracji, zadanie nie powiedzie się i otrzymuję ten błąd:
$ bundle exec rake assets:precompile
/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/ruby /usr/local/rvm/gems/ruby-1.9.3-p0/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
.buttonBackground is undefined
Ale to, że jeśli zrobię to zmienia
buttons.less --> buttons.css.less
@import "buttons" --> @import "buttons.css.less"
Wszystko działa bez zarzutu !!
Czy jest to coś związanego z zakresem mniej zmiennych i funkcji podczas pracy z zagnieżdżonymi importami? Lub coś, co ma związek z zamówieniem, tym mniej parser, lub Sprockets, przetwarza drzewo importu?
Czy brakuje mi czegoś lub robię coś w niewłaściwy sposób?
Thanks :)
Uwaga: pojawia się błąd nawet z oryginalnych zmiennych i plików wstawek, więc to nie jest związane z zadajnikami dokonanych w nich.
„Znalazłem się przed dziwne zachowanie aktywów: prekompilacji zadania” - nie wszyscy :) też uderza mnie, że mieszanie application.css.scss i swoje .less plików może być kwestia. Chciałbym spróbować albo/LESS/SASS i być może Sass nie rozpoznaje twoich dyrektyw @import. Nie jest to konieczne, więc zmień plik application.css.scss -> application.css, usuń sass-rails z Gemfile i sprawdź, czy to pomaga. Powodzenia :) – sbeam