2009-08-26 8 views
5

Hej, jestem nowy dla Rails i Ruby w ogóle. Zastanawiam się, czy możliwe jest użycie osadzonego pliku css ruby ​​(css.erb), podobnego do używania plików html.erb dla widoków.Można użyć stylesheet.css.erb w Rails?

Na przykład, używam

<%= stylesheet_link_tag "main" %> 

link do mojego pliku main.css w miejscach publicznych/stylów, ale kiedy zmienić rozszerzenie pliku z main.css do main.css.erb, to już nie renderuje css ..

Czy to jest nawet możliwe, czy jest lepszy sposób?

Odpowiedz

3

Nie sądzę. Jaka jest Twoja intencja - używanie zmiennych i ich ocenianie w czasie wykonywania lub "kompilacja" (czyli jak czas wdrożenia?). Co to jest wiązanie ERB? Czy byłby powiązany z kontrolerem, podobnie jak widoki i pomocnicy, aby instancja ERB miała dostęp do zmiennych instancji ustawionych w kontrolerze? Po prostu stawiam to pytanie jako bardziej teoretyczne ćwiczenie.

Jeśli chcesz używać zmiennych w swoim CSS, możesz użyć SASS Haml. Nie masz dostępu do zakresu kontrolera, ale dostajesz podstawowe zmienne i pętle. Plus inne fajne rzeczy, takie jak mixins.

4

Można również wygenerować "StyleSheets" kontroler

./script/generate controller stylesheets main admin maintenance 

uzyskać coś takiego:

 exists app/controllers/ 
     exists app/helpers/ 
     create app/views/stylesheets 
     exists test/functional/ 
     exists test/unit/helpers/ 
     create app/controllers/stylesheets_controller.rb 
     create test/functional/stylesheets_controller_test.rb 
     create app/helpers/stylesheets_helper.rb 
     create test/unit/helpers/stylesheets_helper_test.rb 
     create app/views/stylesheets/main.html.erb 
     create app/views/stylesheets/admin.html.erb 
     create app/views/stylesheets/maintenance.html.erb 

I można później użyć app/views/stylów/pliki jako dynamicznie renderowane css akta.

Ta sama metoda działa dla plików JavaScript (regulator JavaScripts)

+1

Czy istnieje sposób na serwer arkuszy stylów za pomocą kontrolera i nadal wykorzystać buforowanie stylów arkuszy? – Pablo

22

Do tego czasu pytanie odpowiedział było rzeczywiście nie da się używać .css.erb plików w szynach prawidłowo.

Ale nowy potok zasobów 3.1 rails umożliwia korzystanie z pomocników zasobów wewnątrz pliku css. Parsery css nie jest zbindowanych zakres kontroler/akcja, ale parser rubin jest teraz w stanie rozwiązać niektóre problemy jak ścieżka obraz odwołuje

.class { background-image: url(<%= asset_path 'image.png' %>) } 

lub osadzić obrazu bezpośrednio do swojego CSS

#logo { background: url(<%= asset_data_uri 'logo.png' %>) } 

źródłowym : http://guides.rubyonrails.org/asset_pipeline.html