2011-09-06 13 views
9

Co jest najłatwiejsze (czy istnieje prosta metoda?) Do korzystania z Less (w połączeniu z Sass/Scss) w potoku zasobów Rails 3.1?Jak używać Less w aplikacji Rails 3.1?

Chcę załadować plik jak foo.css.less jak chciałbym zrobić dla bar.css.scss

znalazłem trochę luźna rączka rozwiązanie, które nie działa dla mnie (nie próbowałem dużo): https://github.com/thisduck/ruby-less-js/issues/2

Ideą byłoby wykorzystanie Twitter Bootstrap w czysty sposób. góry dzięki

Odpowiedz

-1

Wystarczy umieścić plik yourlessfile.less w public/stylesheets, a następnie w widoku, to go

stylesheet_link_tag "/stylesheets/yourlessfile.less", :rel => "stylesheet/less" 

Nie zapomnij zawierać less.js w widoku.

+0

Tak na pewno, to jest czyste i proste rozwiązanie, ale mniej plik nie przejść przez rurociąg aktywów. Chcę, aby było przetwarzane przez koło łańcuchowe i skompresowane z resztą ... – Sucrenoir

+0

To dobra odpowiedź na nagłówek pytania, ale nie na szczegóły pytania. Jest to przydatne dla osób szukających nagłówka. –

10

Jeśli chcesz korzystać tylko z funkcji ładowania początkowego, możesz to zrobić, dodając klejnoty "mniej szyn" i "mniej szyn" do bootstrapu w swoim GemFile.

Następnie można @import bootstrap w swoim .css.less plików:

@import "twitter/bootstrap" 

Alternatywnie, można umieścić każdy plik składowy indywidualnie (z wyłączeniem tych, które nie chcą):

// Reset 
@import "twitter/bootstrap/reset"; 

// Core variables and mixins 
@import "twitter/bootstrap/variables"; 

@import "twitter/bootstrap/mixins"; 

// Grid system and page structure 
@import "twitter/bootstrap/scaffolding"; 

// Styled patterns and elements 
@import "twitter/bootstrap/type"; 
@import "twitter/bootstrap/forms"; 
@import "twitter/bootstrap/tables"; 
@import "twitter/bootstrap/patterns"; 

Jeśli z jakiegokolwiek powodu nie chcesz używać klejnotu less-rails-bootstrap lub masz pliki, których nie chcesz uruchamiać, musisz dodać ręcznie .less ścieżki do less-rails config. Zauważ, że żadna z tych dodatkowych czynności nie jest konieczna, jeśli twoje nazwy plików kończą się na .css.less, ponieważ potok zasobów powinien obsłużyć tę kompilację (o ile dodałeś do niej "less-rails"). Ta procedura jest wymagana tylko wtedy, gdy chcesz odnieść się do zewnętrznych plików .less bezpośrednio w plikach .css.less aplikacji.

Ustawienia, których używam do ładowania początkowego, to kopiowanie plików * .less do vendor/assets/frameworks/twitter/bootstrap. Przechowywanie plików w vendor/assets/stylesheets/... spowodowało pewne problemy, prawdopodobnie ze względu na magię Railsów rozwiązującą mój import do nieprzetworzonych plików .less i nie wiedząc, co z nimi zrobić (to tylko spekulacja z mojej strony, nie zaglądałem w to w pełni) .

Po uzyskaniu plików .less w projekcie, musisz powiedzieć im, gdzie je znaleźć. Zrób to, umieszczając następujące elementy w swoim application.rb.

YourApp::Application.configure do 
    config.less.paths << File.join(Rails.root,'vendor','frameworks') 
    # Should be set to true in production. 
    config.less.compress = false 
end 

Możesz je zaimportować do pliku .css.mniej pliki za pomocą:

@import "twitter/bootstrap/reset" 
@import "twitter/bootstrap/variables" 
... 
+0

Użyłem twojego drugiego podejścia i to absolutnie działa! Dziękuję @billmag –