SCSSではなくSASSをスタイルシートのデフォルトとして作成する方法を理解するのに苦労しています。
私はこれで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)
Rails 3.1.rc4の場合、設定を設定できます:
config.sass.preferred_syntax = :sass
の中に application.rb
ファイル
以下をconfig/environments/development.rb
に追加しました:
config.sass.preferred_syntax = :sass
これでうまくいきました。
require 'sass/plugin'
を実行し、Application.initialize!
を呼び出した後に一番下にあることを確認してください。
@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ファイルの有無にかかわらず正常に機能します。
私は間違いなくscssよりもsassを好む-すべてのCSSに compass gem を使用してpreferred_syntax = :sass
をconfig/compass.rbに
Rails 3.1ではまだこれをテストしていませんが、3.0.7で動作します
編集
トラブルシューティングの手順として、sass_config.rbからコードの最初の行だけを削除して2行目だけを追加するとどうなりますか?これらの両方の行がエラーの原因ですか?
私は別の場所でこの答えを見つけましたが、正確に思い出せませんが、これを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
また、(SCSSよりも)SASS構文を好みます。代わりに、ファイルにmystylesheet.css.sass
という名前を付けるだけで、機能します。 application.css
の名前をapplication.css.sass
に変更し、上部のコメントを//
ではなく/* */
に変更して、require_*
ディレクティブを使用することもできます。その後、アプリケーションのグローバルスタイルシートでSASSを使用できます。 app/stylesheets
でコンパスを使用している場合は機能しません。
Sass::Plugin
は不要です。新しいRailsアセットエンジンはSprocketsに基づいています。これは、SASSをコンパイルしてアセットのバンドルを管理する方法をすでに知っています。正しく。
新しいCompassリリースがRails 3.1+プロジェクトに対してアセットパイプラインを使用してこれを自動的に行うと思います。