2

レール 3.0.9。

Gemfile で:

gem 'compass-rails' (1.0.1)
gem 'sass' (3.0.19)
...

group :development, :test do
  gem 'guard' (1.0.3)
  gem 'guard-sass' (0.6.0)
  ...
end

この構成では、エラーは次のとおりです。

ERROR: Sass > Syntax error: File to import not found or unreadable: compass.
              Load paths:
                /var/www/inbox/public
                /var/www/inbox/public/images
                /var/www/inbox/public/images/intro
                ...

(通常、コンパスへのパスが欠落している(つまり、そこ...ruby-1.9.3-p194-perf/gems/compass-0.12.1/frameworks/compass/stylesheetsない)ことがわかります。そのため、どういうわけかコンパスがロードされておらず、ロードするために何をすべきかわかりません.

エラーと交換guard-sassするときは次のとおりです。guard-compass

ERROR: Rails.root is nil! (RuntimeError)
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/util.rb:370:in `rails_root'
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin/rails.rb:11:in `default_options'
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin/configuration.rb:33:in `options'
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin/compiler.rb:38:in `initialize'
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin.rb:63:in `new'
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin.rb:63:in `compiler'
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin.rb:120:in `options'
...

ファイルを更新するたびに、これがguard-livereload正しく機能するようにし.sassます。

通常、コンパスは適切に機能することに注意してください。ページを更新すると、新しい CSS が SASS ファイルから生成されます。

4

2 に答える 2

2

これは、guard-sassSASS インポート パスが現在のディレクトリのサブディレクトリにのみハードコードされているために発生します (最新バージョン 0.6.0 のhttps://github.com/hawx/guard-sass/blob/ac65c06fb0ea237713197730196d30ac47840bbf/lib/guard/sass.rb#L20を参照)。 ) したがって、コンパスから SASS をインポートすることはできません (コンパス パスは SASS のロード パスにありません)。

その回避策は、:load_paths設定をオーバーライドすることです。これが私がそれを行う方法です:

  guard 'sass', 
    :input => 'app/assets/stylesheets', 
    :output => 'public/stylesheets', 
    :load_paths => Dir.glob(File.join(Gem.dir, "gems", "compass*", "frameworks/blueprint/stylesheets")) + Dir.glob(File.join(Gem.dir, "gems", "compass*", "frameworks/compass/stylesheets"))

または、バージョン 0.7+ にアップグレードすると、上記は不要になります。

于 2012-06-01T08:45:23.363 に答える
0

最近 Rails 3.0.9 プロジェクトに Guard-sass をインストールしましたが、同じ問題に遭遇しました。Pawel が提供した回答は役に立ちませんでした。次に、開発サーバーでガードを使用する必要がないことに気付きました。スタイルとスクリプトを作業しているときにローカルマシンにガードがインストールされていることを確認するだけでよいので、Sass は CSS になり、次に圧縮された CSS になります。 (ジャミット)。

私がやったことは、私のGemfileのグループでガードジェムを次のように分離することです:

group :guard do
  gem 'rb-fsevent',   :require => false if RUBY_PLATFORM =~ /darwin/i # Installs fsevent if on a Mac
  gem "sass",         "~> 3.2.1"
  gem 'guard-sass',   "~> 1.0.0"
  gem 'guard-jammit'
end

次に、ターミナル ウィンドウで Rails アプリケーションを起動し、別のターミナルで保護します。

于 2012-09-07T16:30:42.450 に答える