Rails 3アプリでcompass init Rails ./ --using blueprint
を正常に実行できました。/stylesheetsディレクトリから@import
ファイルを取得できますが、@import compass
を実行しようとするとエラーが発生します。
現在、このアプリには2つのシンプルなsassファイルがあります。
common.scss
$body-background: blue;
main.scss
@import "common";
//@import "compass";
body {
background: $body-background;
}
@import "compass"
行をコメント化すると、これは機能します-青色の背景が表示されるので、Sassが機能していることがわかります。
この行のコメントを外して、compass
またはblueprint
などをインポートしようとすると、次のようなエラーが発生します。
Syntax error: File to import not found or unreadable: compass.
Load paths:
/Users/eric/path/to/myrailsapp/app/stylesheets
on line 2 of /Users/eric/path/to/myrailsapp/app/stylesheets/main.scss
1: @import "common";
2: @import "compass";
3:
4: body {
5: background: $body-background;
6: }
おそらく、SassにCompass gemの場所を明示的に指示する必要があったため、add_import_path
行をconfig/compass.rbに追加しました。
require 'compass'
require 'html5-boilerplate'
project_type = :Rails
project_path = Rails_ROOT if defined?(Rails_ROOT)
add_import_path "/Library/Ruby/Gems/1.8/gems/" # unfortunately this has no effect
http_path = "/"
css_dir = "public/stylesheets"
sass_dir = "app/stylesheets"
images_dir = "public/images"
javascripts_dir = "public/javascripts"
cache_dir = "tmp/sass-cache"
http_images_path = "/images"
http_stylesheets_path = "/stylesheets"
http_javascripts_path = "/javascripts"
私は2日間グーグルで作業しており、基本的な@import
ステートメントでこの問題が発生している理由を特定できません。 SassにCompassライブラリとBlueprintライブラリの場所を教えてください。
さて、素晴らしいクリス・エップスタインの助けを借りて、問題のある行を見つけることができました。 config/environments.rb
この行がありました:
Sass::Plugin.options[:template_location] = {
"#{Rails_ROOT}/app/stylesheets" => "#{Rails_ROOT}/public/stylesheets"
}
Rails(私は3.0.7を持っています)とコンパス(0.11.1を持っています)の現在のバージョンでは、この行は必要ありませんです。チュートリアルに従って追加しました。 sassがコンパスを見つけられない場合は、この行がSass::Plugin.options[:template_location]
。
このエラーが発生しました。
私のapplication.rbのこの行を次のように変更しました:
Bundler.require(:default, Rails.env) if defined?(Bundler)
に:
Bundler.require(*Rails.groups(:assets => %w(development test))) if defined?(Bundler)
また、ファイルの名前がsomething.css.sassではないことを確認してくださいsomething.sass
そしてもう1つのことは、Rails 3.2では不要なconfigディレクトリに古いcompass.rbファイルがあったことです。これを削除すると、この問題も解決されました。
compass-Rails
gemの代わりにcompass
gemをGemfileに入れます(サーバーを再起動することを忘れないでください)。誰かがここで遭遇するかもしれないので念のために。
私は頭をぶつけた後にこのエラーを修正しました
私は私のapplication.rbでこの行にコメントしました:
Bundler.require(*Rails.groups(:assets => %w(development test))) if defined?(Bundler)
およびコメントなし:
Bundler.require(:default, :assets, Rails.env) if defined?(Bundler)
私はRails 3.2.11を使用しています
私はこの問題を自分のRails 3.2.0サーバーで移動して修正しましたgem 'compass-Rails', '~> 1.0.1'
から :assets
Gemfile
内のグループ https://github.com/Compass/compass-Rails/issues/19 のヒントから。
Sassの@importコマンドは、.cssファイルではなく.scssまたは.sassファイルをインポートします。
インストールで何かが欠けているようです。 (たぶんcompass install blueprint
?)私は次の手順に従いました: http://compass-style.org/reference/blueprint/ で、問題を再現できませんでした。
このエラーを次のように修正しました:
私が持っていたapplication.rbで
Bundler.require(:default, Rails.env) if defined?(Bundler)
に変更
Bundler.require(:default, :assets, Rails.env) if defined?(Bundler)
これは、プロジェクトを3.0.3から3.2.13に更新した後です。