60

スタイルシートのデフォルトとして、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)
4

6 に答える 6

74

rails 3.1.rc4の場合、次の設定を行うことができます。

config.sass.preferred_syntax = :sass

application.rbファイル内

于 2011-06-11T15:29:56.653 に答える
8

私は以下を追加しましたconfig/environments/development.rb

config.sass.preferred_syntax = :sass

それでうまくいきました。

于 2012-09-10T01:56:16.510 に答える
7

require 'sass/plugin'電話をかけた後、一番下にあることを確認してくださいApplication.initialize!

于 2011-05-15T05:51:30.403 に答える
2

私は間違いなくscssよりもsassを好みます-すべてのCSSにコンパスgempreferred_syntax = :sassを使用し、 config /compass.rbに追加することを検討しましたか?

Rails 3.1ではまだテストしていませんが、3.0.7で動作します。

編集

トラブルシューティングの手順として、sass_config.rbからコードの最初の行だけを削除して2番目の行だけを含めるとどうなりますか?これらの両方の行でエラーが発生しますか?

于 2011-05-15T04:09:16.950 に答える
2

@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ファイルの有無にかかわらず正常に機能します。

于 2011-05-21T22:47:02.447 に答える
1

私はこの答えをどこか別の場所で見つけました、正確には思い出せませんが、これを入れて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使用することもできます。これはすべて機能し、アプリケーションのグローバルスタイルシートでSASSを使用できます。でコンパスを使用する場合はそうではありません。application.css.sass///* */require_*app/stylesheets

は必要ありませんSass::Plugin。Sprocketsに基づく新しいRailsアセットエンジンとは完全に独立しています。SASSをコンパイルする方法をすでに知っており、アセットのバンドルを適切に管理します。

新しいCompassリリースでは、アセットパイプラインを使用するRails3.1以降のプロジェクトでこれが自動的に行われると思います。

于 2011-06-07T01:06:36.767 に答える