Я оказался перед странным поведением задачи assets:precompile
или, по крайней мере, перед чем-то, что я не совсем понял.Rails assets: precompile странное поведение
Итак, я использую Rails 3.1.3, Sprockets 2.0.3, Less 2.0.11 для своего веб-приложения, плюс я полагаюсь на Bootstrap для макета, поэтому я использую также менее рельсы 2.1.8 и менее -rails-bootstrap 2.0.8. Я настроил стиль, как говорят here.
Конфигурация моих активов:
stylesheets
|--application.css.scss
|--custom-style/
|--variables.less
|--mixins.less
|--buttons.less
|--custom-style.css.less
В application.css.scss я
//=require custom-style
И в пользовательском стиле я
@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
//...
Наконец в buttons.less
Я использую некоторые переменные и mixins, определенные в variables.less
и mixins.less
B файлы ootstrap, @white
и .buttonBackground
более подробно.
Если я запускаю bundle exec rake assets:precompile
с описанной выше конфигурации, задача не выполнена, и я получаю эту ошибку:
$ 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
Но что, если я делаю это меняет
buttons.less --> buttons.css.less
@import "buttons" --> @import "buttons.css.less"
Все работает отлично !!
Является ли это чем-то связанным с объемом меньших переменных и функций при работе с вложенными импортами? Или что-то, что связано с порядком, меньше парсера или Sprockets обрабатывает дерево импорта?
Я что-то упустил или что-то сделал не так?
спасибо :)
Примечание: я получаю ошибку, даже с исходными переменными и Примеси файлов, так что это не связано с переопределением сделали в них.
«Я оказался перед странным поведением активов: прекомпиляционная задача» - не все мы :) также поражает меня тем, что смешивание application.css.scss и ваших .less-файлов может быть вопрос. Я попробую либо/или LESS/SASS, и, возможно, Sass не распознает ваши директивы @import. Это не обязательно, поэтому измените application.css.scss -> application.css, удалите sass-rails из Gemfile и посмотрите, помогает ли это. Удачи :) – sbeam