2012-01-30 51 views
1

我已經使用Ruby代碼(http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#adding_custom_functions)成功地擴展了一些SASS功能,並且我的擴展在開發中正確加載,但是當我預編譯我的資產,擴展沒有加載。代碼位於/ app/models中,但這可能不是最適合它的地方。如何在預編譯期間包含自定義的SASS函數?

我已經明確要求在幾個不同的配置文件中的文件,但它仍然無法在預編譯期間加載。這似乎也是一種糟糕的做法。

我知道代碼無法加載,因爲預編譯的CSS會在CSS中以明文形式留下函數名。沒有錯誤被拋出。

所以:像這樣生存的文件的最佳位置在哪裏,以及如何在預編譯期間讓SASS加載文件?

回答

2

問題最終導致我不正確地要求文件,而是使用配置根而不是應用根。假設試圖包含不存在的文件時會引發錯誤,但顯然不是。有一次,我需要在config/application.rb中正確的文件,預編譯能夠訪問我的SASS擴展

require "#{Rails.root}/lib/assets/colorable.rb" 
+0

我正在使用rails 3.2.3並且必須使用'require File.expand_path(「lib/assets/colour.rb「)'代替。 'application.rb'的Rails.root變量爲空 – 2012-07-10 14:00:41