Ответ 1
Для рельсов 3.1.rc4 вы можете установить конфигурацию:
config.sass.preferred_syntax = :sass
в файле application.rb
Нелегко выяснить, как сделать SASS, а не SCSS, по умолчанию для таблиц стилей.
Я пробовал сделать файл sass_config.rb
с этим:
Sass::Plugin.options[:syntax] = :sass
Sass::Plugin.options[:style] = :compressed
Я также попытался добавить это в файл environment.rb. В любом случае я получаю эту ошибку:
.../config/environment.rb:7:in `<top (required)>':
uninitialized constant Sass::Plugin (NameError)
Для рельсов 3.1.rc4 вы можете установить конфигурацию:
config.sass.preferred_syntax = :sass
в файле application.rb
Я добавил следующее в config/environments/development.rb
:
config.sass.preferred_syntax = :sass
Это сделал трюк.
Сделайте require 'sass/plugin'
и убедитесь, что он внизу после вашего вызова Application.initialize!
.
Я определенно предпочитаю sass scss тоже - вы считали, что используете только драгоценный камень компаса для всех ваших CSS и добавляете preferred_syntax = :sass
в конфигурацию /compass.rb
Я еще не тестировал это на rails 3.1, но он работает в версии 3.0.7
ИЗМЕНИТЬ
Как шаг устранения неполадок, что происходит, когда вы удаляете только первую строку кода из sass_config.rb, чтобы она имела только вторую? Вызывают ли обе эти строки ошибку?
Как прокомментировал @krainboltgreene, добавив следующую строку в config/application.rb
config.generators.stylesheet_engine = :sass
делает sass
формат по умолчанию для генераторов таблиц стилей. Однако, поскольку Rails 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 в своем приложении global таблицы стилей. Это не будет, если вы используете компас в app/stylesheets
.
Не требуется Sass::Plugin
, он полностью отделен от нового механизма движков Rails, который основан на Sprockets. Он уже знает, как скомпилировать SASS для вас и правильно управлять комплектом активов.
Я предполагаю, что новый выпуск Compass сделает это автоматически для проектов Rails 3.1+, используя конвейер активов.