2013-07-08 7 views
8

Sto cercando un modo per aggiungere un collegamento del foglio di stile alla testa di un modello di HAML.Come aggiungere un foglio di stile al capo del layout di un modello HAML in Sinatra?

mio layout:

!!! 
    %html 
    %head 
    /some stuffs 
    %body 
     = yield 

mio modello ceduto:

/ some other stuffs... 

/maybe a function like this in order to inject 'my_stylesheet' link in layout 
= content_for_head 'my_stylesheet' 

E 'possibile fare una cosa del genere?

+2

aggiungerlo alla vostra testa: '% link href = "/ path/to/stylesheet.css" rel = "stylesheet" ' –

+0

la cosa è che non voglio che tutte le viste che hanno condiviso questo layout abbiano caricato questo foglio di stile – szymanowski

+0

Come si determinano le viste che ottengono il foglio di stile e quali no? C'è uno schema? –

risposta

13

Ci sono 2 modi per procedere. Uno è quello di utilizzare la gemma content_for di Sinatra o il pacchetto ActionView, che ti darà accesso al metodo content_for di Rails.

La seconda opzione è quella di fare un controllo manuale nel layout, e comprendono il CSS non:

# in your HAML template: 
- if request.path_info == '/hello-world' 
    %link{:rel => :stylesheet, :type => :"text/css", :href => "/assets/css/my_stylesheet"}