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)
私は非常になりますどのように私はこれを解決することができるかについての任意の洞察力やポインターのために素晴らしい。
驚くばかり!それがそれを解決しました。ありがとう:) – mekwall