Как сделать Rails 3.1 использовать SASS (над SCSS) по умолчанию?
трудно понять, как сделать SASS, а не SCSS, как по умолчанию для таблиц стилей.
Я пробовал делать sass_config.rb
файл с этого:
Sass::Plugin.options[:syntax] = :sass
Sass::Plugin.options[:style] = :compressed
Я также попытался добавить это в окружающую среду.rb файл. В любом случае я получаю эту ошибку:
.../config/environment.rb:7:in `<top (required)>':
uninitialized constant Sass::Plugin (NameError)
6 ответов:
для рельсов 3.1.rc4, вы можете установить конфигурацию:
config.sass.preferred_syntax = :sass
на
application.rb
file
я добавил следующее в
config/environments/development.rb
:config.sass.preferred_syntax = :sass
это сделало трюк.
Я определенно предпочитаю sass scss тоже-вы рассматривали только использование компас для всех ваших CSS и добавляем
preferred_syntax = :sass
в config/компас.РБЯ еще не тестировал это на rails 3.1, но он работает в 3.0.7
EDIT
как шаг устранения неполадок, что происходит, когда вы удаляете только первую строку кода из sass_config.rb так что у него просто есть второй? Обе эти строки вызывают ошибку?
как прокомментировал @krainboltgreene, добавив следующую строку в
config/application.rb
config.generators.stylesheet_engine = :sass
делает
sass
формат по умолчанию для генераторов стилей. Однако, с рельсов 3.1.beta1 не поддерживает его, появляется следующее сообщение об ошибке$ rails g scaffold user name:string ... Could not find "scaffold.css.sass" in any of your source paths. Your current source paths are: .../gems/railties-3.1.0.beta1/lib/rails/generators/rails/scaffold/templates ... $ rails g controller users ... Could not find "stylesheet.css.sass" in any of your source paths. Your current source paths are: .../gems/railties-3.1.0.beta1/lib/rails/generators/rails/assets/templates
как вы видите, нельзя изменить формат по умолчанию, не нарушая генераторов. Вместо этого вы можете вручную создать дополнительный *.стиль CSS.файлы sass, которые отлично работают с scss или без них.
я нашел этот ответ где-то еще, не могу точно вспомнить, но поместите это в
config/initializers/sass.rb
:Sass::Engine::DEFAULT_OPTIONS[:load_paths].tap do |load_paths| load_paths << "#{Rails.root}/app/assets/stylesheets" load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets" end
я также предпочитаю синтаксис SASS (для SCSS). Все, что вам нужно сделать, это файлы
mystylesheet.css.sass
вместо этого, и он просто работает. Вы даже можете переименоватьapplication.css
доapplication.css.sass
, измените комментарии в верхней части на//
вместо/* */
и с помощьюrequire_*
директивы-все это работает, а затем вы можете использовать SASS в вашей глобальной таблице стилей приложения. Это не будет, если вы используете компас вapp/stylesheets
.не требуется
Sass::Plugin
, он полностью отделен от нового двигателя Rails asset, который основан на звездочках. Он уже знает, как скомпилировать SASS для вас и правильно управляет связыванием активов.Я предполагаю, что новый выпуск Compass сделает это автоматически для проектов Rails 3.1+ с использованием конвейера активов.