我正在使用 Windows 7 中的 Sprockets(仅限开发环境)通过机架服务器提供我的 Compass 驱动的 SASS 文件。当我将路径附加到 Sprockets 时,它似乎没有将这些添加到 SASS 加载路径。
据我了解sprockets-sass append_path
中的文档应该自动添加到 SASS 的路径load_path
。
我base/sass/base.scss
在一个项目特定的组件目录(如下所列)中,并且在这个文件中我试图包含来自公共组件的所有 scss 文件。../common/sass/*
如果我在@include
其中使用相对路径(
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)
如您所见,加载路径中仅列出了由 compass 和 compass-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
该捆绑包安装了以下 gem:
- 机架 (1.4.1)
- 萨斯(3.1.15)
- sass-globbing (1.0.0.rc.2)
- 指南针 (0.12.1)
- 指南针魔法 (0.1.4)
- 链轮 (2.3.1)
- 链轮助手 (0.4.0)
- sprockets-sass (0.7.0)
对于如何解决此问题的任何见解或指示,我将非常感激。