2014-11-01 111 views
11

我试图让libsass与Rails 4资产管道的工作。到目前为止,我已经克隆了Github上ruby-libsass宝石到我的应用程序供应商的文件夹。我将followig添加到我的gemfile中:使用libsass使用Rails资产管道

gem 'sassc', path: 'vendor/ruby-libsass/' 

然后我按照文档添加了libsass的子模块。在libsass文件夹中,我不得不在sass2scss库中克隆它进行编译。我编制了make install-shared,它创建了/usr/local/lib/libsass.so。在此之后,运行rake assets:precompile提供以下错误:

rake aborted! 
LoadError: Could not open library 'sass': dlopen(sass, 5): image not found. 
Could not open library 'libsass.dylib': dlopen(libsass.dylib, 5): image not found 

所以我符号链接libsass.dylib/usr/local/lib/libsass.dylib。在那之后,我收到以下错误:

NameError: uninitialized constant SassC::Lib::Context::SassOptions

我尝试注释掉/ruby-libsass/lib/sassc/lib/context.rb调用SassOptions行了,而且似乎已经取得了它的工作,并编制资产。第20行注释掉的代码,context.rb:

layout :source_string, :pointer, 
    :output_string, :string, 
    # :options, SassOptions, 
    :error_status, :int, 
    :error_message, :string, 
    :c_functions, :pointer, 
    :included_files, :pointer, 
    :num_included_files, :int` 

现在,我遇到的问题是我看不到速度差异。它可以在大约7秒钟内编译我的资源,不论是否将libsass添加到我的Gemfile中。由于初始编译了一个有关错误TOT libsass.dylib文件不被发现,我认为它实际上是用sassc代替青菜,但看起来事实并非如此。

任何想法我可能会错过?我使用C没有经验,所以我甚至不知道我是否正确编译的一切,等

+0

这个人在过去工作过,看起来他必须在'context.rb'中添加sass-rails:https://github.com/andrew/libsass-rails – 2014-11-14 16:39:05

+0

,将以下内容添加到顶部:'require_relative'sass_options''。 – glasz 2015-01-14 21:19:35

+0

谢谢,当我有一分钟时,我会给它一个去看看是否有任何改变。我认为问题更多的是编译的库不会被使用。 – 2015-01-21 09:55:51

回答

1

好吧,我终于得到了它的工作多亏了this gem!该项目仍然是一个WIP,可以与少数支持者一起完成。 :)

我唯一遇到的问题是,您需要从您的项目中完全删除sass-rails,如果您使用像ActiveAdmin这样的宝石,这可能是一个问题。尽管有解决方法。然后,获得包括在具有@import您的SCSS文件纯CSS文件需要有.css在导入文件名的末尾。