2014-11-01 116 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在導入文件名的末尾。