2012-05-14 5 views
2

Sass::Engine.new을 사용하여 프로그래밍 방식으로 CSS에 약간의 저음을 렌더링하려고합니다. 나는 그것이 가능하도록하는 방법을 알아낼 수없는 문제에 직면하고있다. @import GEMMIFIED_SASS_MODULE. 예를 들어, 이것이 내가 노력하고있어입니다 :Sass :: Engine.render가 청사진 라이브러리를 가져 오지 않고 있습니다 ... 왜?

?> sass = "@import \"blueprint/reset\"\nh1\n width: 100%" 
=> "@import \"blueprint/reset\"\nh1\n width: 100%" 
>> puts sass # For readable version 
@import "blueprint/reset" 
h1 
    width: 100% 
=> nil 
>> Sass::Engine.new(sass, :syntax => :sass).render 
Sass::SyntaxError: File to import not found or unreadable: blueprint/reset. 
Load path: /Users/username/projects/my_app 
     from (sass):1 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/import_node.rb:64:in `rescue in import' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/import_node.rb:42:in `import' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/import_node.rb:25:in `imported_file' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:149:in `rescue in visit_import' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:154:in `visit_import' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/base.rb:37:in `visit' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:18:in `visit' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/base.rb:53:in `block in visit_children' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/base.rb:53:in `map' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/base.rb:53:in `visit_children' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:27:in `block in visit_children' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:39:in `with_environment' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:26:in `visit_children' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/base.rb:37:in `block in visit' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:47:in `visit_root' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/base.rb:37:in `visit' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:18:in `visit' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/visitors/perform.rb:7:in `visit' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/tree/root_node.rb:20:in `render' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/engine.rb:299:in `_render' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/sass-3.1.15/lib/sass/engine.rb:246:in `render' 
     from (irb):30 
     from /Users/username/.rvm/gems/[email protected]_app/gems/railties-3.2.3/lib/rails/commands/console.rb:47:in `start' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/railties-3.2.3/lib/rails/commands/console.rb:8:in `start' 
     from /Users/username/.rvm/gems/[email protected]_app/gems/railties-3.2.3/lib/rails/commands.rb:41:in `<top (required)>' 
     from script/rails:6:in `require' 
     from script/rails:6:in `<main>' 

내가 파일에 일부 말대꾸를 넣고 상단에 @import blueprint/reset를 사용할 때이 일을 아무 문제가 없다, CSS 잘 온으로 컴파일 할 수 있습니다 the-fly 개발 모드에서 그리고 rake assets:precompile을 통해. 그러나 나는 스스로를 렌더링해야하고이 문제에 부딪 치고있는 새로운 유스 케이스를 가지고있다. 렌더링을 시도하기 전에 require 'compass', require 'compass-rails'require 'compass/rails'을 추가하려고 시도했지만 작동하지 않습니다. 작업이 필요합니다 (파일을 요청한 후에 true 또는 false라고 표시되지만) 내 Sass::Engine.new().render 호출에서 여전히 사용할 수없는 것으로 보입니다. 내 Gemfile에

나는이 :

gem 'haml-rails' 
gem 'sass-rails' 
gem 'compass-rails' 

사람은 내가 볼 라이브러리를 만들기 위해 무엇을 할 수 있는지의 아이디어가 말대꾸 :: 엔진을 사용하는 경우? Reference 또는

답변

0

청사진에 대한 경로를 제공하지 않으며 SASS는 경로를 찾을 수 없습니다.

컴퍼스는이 문제를 해결하기 위해 만들어진 도구입니다. 경로를 제공하지 않고 직접 가져올 수있는 확장 기능의 생태계를 제공합니다.

일반 SASS를 사용하려고합니다. 이 문제를 해결하려면 Compass 확장이 저장된 위치를 SASS에 알려야합니다.

# Allowing vanilla SASS use Compass extensions 
Compass.sass_engine_options[:load_paths].each do |path| 
    Sass.load_paths << path 
end 
관련 문제