2012-05-03 29 views
2

我正在使用Windows 7中的鏈輪(僅適用於開發環境)通過Rack服務器爲我的Compass驅動的SASS文件提供服務。當我追加到Sprockets的路徑時,它似乎不會將這些添加到SASS加載路徑。鏈輪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) 

正如你所看到的,通過指南針只添加了路徑和羅盤magick被列在負載路徑,我希望它在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)
  • sass-globbing(1.0.0.rc.2)
  • 指南針(0.12.1)
  • 羅盤magick(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