特定の Rails CMS (Radiant など) には、ページにアクセスしたときに基本的に Sass をコンパイルするプラグインがあることがわかりました。通常のRailsアプリでこれを行う方法はありますか? そうすることはパフォーマンスですか?基本的に、Compass を実行してスタイルシートをコンパイルする余分な手順を削除する方法を検討しています。
4 に答える
私は特にコンパスを使用していませんが、ファイルがコンパイルされるように本番フラグがあるようです-本番でリクエストごとに再コンパイルするためにコンパスをビルドすることは想像できませんでした、Radiantはアプリケーションの起動時にcssをコンパイルします生成されたCSSファイルは、AFAIKで再度生成しようとはしません。
Sass と Compass は Rails と自動的に統合されます。Rails 3 を使用している場合はgem "haml"
、Gemfile に追加するだけで、 のすべてのファイル.sass
と.scss
ファイルが のファイルにpublic/stylesheets/sass
コンパイルされ.css
ますpublic/stylesheets
。
リクエストごとにコンパイルしますか? 性能的にはヒットかと思います。その場合は、必ずキャッシュ戦略を使用する必要があります。キャッシュにない場合にのみスタイルシートをコンパイルするようにします。
css スタイルシートの設定を処理するヘルパー メソッドsetup_stylesheetを作成できます。アプリケーション レイアウトでこのメソッドを呼び出します。
setup_stylesheetは、css スタイルシートがキャッシュにあるかどうかをチェックし、キャッシュにある場合はそれを使用します。そうでない場合は、コンパイルします。
別のアプローチ:
アプリの起動時に Compass を呼び出して SASS スタイルシートをコンパイルするイニシャライザを設定できます。
- そうすることはパフォーマンスですか?
実行時にコンパイルすると、パフォーマンスが大幅に低下します。
Nex3 ( Sass gemの作成者) が別のフォーラムで指摘したように、実行する必要はありませんcompass watch
。
以下を production.rb に入れることを強くお勧めします: Sass::Plugin.options[:never_update] = true
- Heroku を使用している場合、これは特に重要です。(これは、他のオプションも指定できるラック ファイルで行うこともできます。
うーん、頑張って