7

開発用にネストされたスタイルを設定し、本番用に圧縮されたスタイルを設定したいとします。Compass構成ファイルには次の1つのオプションしかありません。

output_style = :compact # or :nested, :expanded, :compressed
4

2 に答える 2

7

それはかなり簡単なようです:

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
于 2010-03-05T11:35:27.133 に答える
6

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
于 2010-08-04T13:56:03.380 に答える