2011-10-05 3 views

Odpowiedz

13

W Rails 3.1, wszystkie arkusze stylów zostaną połączone w application.css jeśli application.css wygląda następująco:

/* 
* This is a manifest file that'll automatically include all the stylesheets available in this directory 
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at 
* the top of the compiled file, but it's generally better to create a new file per style scope. 
*= require_self 
*= require_tree . 
*/ 

To dzięki * = require_tree.

można wymagać specjalnego arkusza stylów z:

*= require main 

W przeciwnym razie, w układzie, piszesz:

%head 
= yield :head 

aw swojej stronie:

= content_for :head do 
= stylesheet_link_tag 'stylesheet' 
+0

Co robi głowica% head i yield: head bits? –

+0

W Haml: % głowicy = wydajność: głowica Wygeneruje znacznik w HTML i wstawi kod z innej strony przez wydajność – damienbrz

3

Zobacz także:
http://guides.rubyonrails.org/layouts_and_rendering.html

(patrz punkt 2.2.14 'Znajdowanie layouty')

można mieć różne układy dla różnych kontrolerów!

np. pod app/views/layouts możesz mieć application.haml i admin.haml , a pod aplikacjami/kontrolerami masz admin_controller.rb

Railsy będą próbowały znaleźć układ o tej samej nazwie co kontroler.

Można także zmienić to zachowanie i określić, który układ w użyciu, np .:

class ItemsController < ApplicationController 
    layout "admin" 
    #... 
end 

Można by następnie utworzyć plik admin.scss pod APP/stylów dla tej nowej szacie!

+0

+1 za faktyczne określenie, która sekcja ma wyglądać, zamiast odrzucania tego samego starego linku. – ahnbizcad

+0

dzięki. tak, to jest długa strona i zmienili numery sekcji – Tilo

10

Dodam rozwiązanie, które zadziałało dla mnie.

Jak wspomniano w poprzedniej odpowiedzi, może chcesz usunąć oświadczenie

*= require_tree . 

z application.css pliku.

Ciągle oświadczenie

*= require_self 

dla współdzielonych stylów całej aplikacji.

Wtedy w moim application.html pliku użyłem następujące oświadczenia obejmować tylko application.css i controller.controller_name.css arkuszy stylu, w widoku.

= stylesheet_link_tag "application", controller.controller_name 
= javascript_include_tag "application", controller.controller_name 

Jak widać to samo działa dla plików JavaScript.