2012-05-03 8 views
2

Compassを搭載したSASSファイルは、Windows 7のSprocketsを使用するRackサーバーから提供しています(開発環境のみ)。私がSprocketsにパスを追加するとき、SASSロードパスにこれらを追加していないようです。Sprockets append_pathはSASSに追加されませんload_path

​​append_pathのドキュメントからわかるように、SASS load_pathへのパスを自動的に追加する必要があります。

プロジェクト固有のコンポーネントディレクトリ(下記)にbase/sass/base.scssがあります。このファイルには、共通のコンポーネントのすべてのscssファイルを含めるようにしています。私は@includeに相対パス(../common/sass/*)を使用する場合、それは動作しますが、私はSASSはLOAD_PATHにそれを見てみましょうとき、私は次のエラーを取得する:

Sass::SyntaxError: File to import not found or unreadable: common/sass/* 
Load paths: 
    Sass::Globbing::Importer 
    C:/Program Files (x86)/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/compass-0.12.1/frameworks/blueprint/stylesheets 
    C:/Program Files (x86)/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/compass-0.12.1/frameworks/compass/stylesheets 
    C:/Program Files (x86)/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/compass-magick-0.1.4/lib/stylesheets 
    Compass::SpriteImporter 
    (in C:/repos/test/project/components/base/sass/base.scss) 

あなたが見ることができるように、唯一のパスはコンパスによって追加しますコンパス - マジックはロードパスに記載されており、C:/repos/test/project/componentsも参照してください。

マイラックサーバのセットアップは次のようになります。

#!/bin/env ruby 
require 'bundler' 
Bundler.require 

COMPONENT_DIR = "../../components" # -> C:/repos/test/project/components 
GENERATED_CSS_DIR = "public/generated-css" 

Compass.configuration do |compass| 
    compass.output_style = :compressed 
end 

compiler = Rack::Builder.new do 
    map "/#{GENERATED_CSS_DIR}" do 
    environment = Sprockets::Environment.new 
    environment.append_path File.expand_path(COMPONENT_DIR) 
    environment.cache = Sass::CacheStores::Memory.new 
    run environment 
    end 
end.to_app 

@server = Rack::Server.new({:app => compiler, :Port => 9292}) 

Thread.new do 
    loop do 
    if $stdin.gets.nil? 
     @server.server.shutdown 
     Process.exit 
    end 
    end 
end 

@server.start 

バンドルには、以下の宝石をインストールします。

  • ラック(1.4.1)
  • SASS(3.1.15)
  • サスグローブ(1.0.0.rc.2)
  • コンパス(0.12.1)
  • コンパス - 魔術(0.1.4)
  • スプロケット(2.3.1)
  • スプロケット・ヘルパー(0.4.0)
  • スプロケット-SASS(0.7.0)

私は非常になりますどのように私はこれを解決することができるかについての任意の洞察力やポインターのために素晴らしい。

答えて

2

次のようなものが必要です。

compass.add_import_path File.expand_path(File.join(COMPONENT_DIR, "components")) 

Compass.configuration do |compass|ブロック内にありますか?

+0

驚くばかり!それがそれを解決しました。ありがとう:) – mekwall

関連する問題