Позвольте говорят, что я хотел бы установить вложенный стиль для разработки и сжатый для производства. В конфигурационном файле Компаса существует только одна опция:
output_style = :compact # or :nested, :expanded, :compressed
Похоже, это довольно просто:
output_style = RAILS_ENV == "production" ? :compressed : :nested
Чтобы проверить это, я запустил эту задачу rake в разных средах (мне пришлось изменить исходный код sass перед запуском этой задачи):
namespace :sass do
desc 'Updates stylesheets if necessary from their Sass templates.'
task :update => :environment do
Sass::Plugin.update_stylesheets
end
end
Вы можете поместить эту задачу в lib / задачи / sass.rake.
Еще у меня есть эта задача, выполняемая в моем Capistrano deploy.rb для автоматического обновления таблиц стилей в производственной среде во время развертывания:
after 'deploy:restart', 'sass:update'
namespace :sass do
desc 'Updates the stylesheets generated by Sass'
task :update, :roles => :app do
invoke_command "cd #{current_release}; rake sass:update RAILS_ENV=production"
end
end
В дополнение к ответу Voldy я решил проблему, создав инициализатор sass_config и поместив в него следующее:
Sass::Plugin.options[:style] = case RAILS_ENV
when 'production' then :compressed
when 'staging' then :compact
when 'development' then :expanded
else
:nested
end