2010-08-13 60 views
0
绝对路径参数

我使用sass(从haml-edge)进行处理css文件,它绝对路径当机参数:萨斯(红宝石CSS压缩机)在Windows

K:\sass>sass.bat k:/sass/css/*.scss k:/sass/css/*.css --trace 
d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/files.rb:23:in `read': No such file or directory - k 
(Errno::ENOENT) 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/files.rb:23:in `tree_for' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/plugin.rb:220:in `update_stylesheet' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/plugin.rb:71:in `block in update_stylesheets' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/plugin.rb:71:in `each' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/sass/plugin.rb:71:in `update_stylesheets' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/haml/exec.rb:433:in `watch_or_update' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/haml/exec.rb:349:in `process_result' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/haml/exec.rb:41:in `parse' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/lib/haml/exec.rb:21:in `parse!' 
    from d:/Programs/Ruby/lib/ruby/gems/1.9.1/gems/haml-edge-3.1.62/bin/sass:8:in `<top (required)>' 
    from d:/Programs/Ruby/bin/sass:19:in `load' 
    from d:/Programs/Ruby/bin/sass:19:in `<main>' 

我能够使它通过注释在split_colon_path一个条件(红宝石\ LIB \红宝石\宝石\ 1.9.1 \宝石\ HAML边缘-3.1.62 \ LIB \ HAML \ exec.rb)工作:

def split_colon_path(path) 
    one, two = path.split(':', 2) 
    if one && two && #### this part was commented # ::Haml::Util.windows? && 
     one =~ /\A[A-Za-z]\Z/ && two =~ /\A[\/\\]/ 
    # If we're on Windows and we were passed a drive letter path, 
    # don't split on that colon. 
    one2, two = two.split(':', 2) 
    one = one + ':' + one2 
    end 
    return one, two 
end 

有没有更好的平台检测解决方案?

+0

'sass' VS'K:/ SSAS /' - 是你的路径一个错字的第一个元素? – sarnold 2010-08-13 10:49:38

+0

@sarnold:替换实际路径时的小错字 – alexandrul 2010-08-13 11:16:25

回答

1

这是一个已知的错误。它已经在最新的Sass稳定版本中得到修复,除非你使用mingw Ruby,在这种情况下,它将在下一个稳定版本(本周末发布)中得到修复。

+0

我使用mingw Ruby,感谢好消息。 – alexandrul 2010-08-14 09:27:56

1

问题在haml-edge 3.1.64解决。

为了记录在案,mingw添加到host_os可能值{Ruby folder}\lib\ruby\gems\1.9.1\gems\haml-edge-3.1.64\lib\haml\util.rb

# Whether or not this is running on Windows. 
# 
# @return [Boolean] 
def windows? 
    RbConfig::CONFIG['host_os'] =~ /mswin|windows|mingw/i 
end 
+0

感谢您的解释。看起来你是在公共互联网索引中解释这个错误的人:) – user80805 2010-10-10 19:14:07