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)
我會很對於我如何解決這個問題的任何見解或指示都非常有幫助。
太棒了!這解決了它。謝謝 :) – mekwall