開発用にネストされたスタイルを設定し、本番用に圧縮されたスタイルを設定したいとします。Compass構成ファイルには次の1つのオプションしかありません。
output_style = :compact # or :nested, :expanded, :compressed
開発用にネストされたスタイルを設定し、本番用に圧縮されたスタイルを設定したいとします。Compass構成ファイルには次の1つのオプションしかありません。
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/tasks/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