Quando si utilizza href="style.css"
, si specifica un collegamento relativo al foglio di stile. Il percorso effettivo che il browser sarà richiesta dipenderà l'URL della pagina corrente, così per esempio se si dispone di un percorso simile:
get '/things/:id' do
#look up thing with id = :id
erb :my_view
end
quindi il browser cercherà il foglio di stile in /things/style.css
. Questo ovviamente non funzionerà se il tuo foglio di stile è al livello più alto nella tua dir public
.
La soluzione rapida consiste nell'utilizzare un percorso assoluto per il foglio di stile: href="/style.css"
(notare il carattere /
). Questo farà sì che il browser cerchi sempre il foglio di stile nella radice del server.
Ciò presuppone che l'applicazione sia sempre installata nella radice del server e non funzionerà se la si esegue in una sottodirectory. Vuoi essere in grado di dire "cerca il foglio di stile nella radice di questa applicazione, ovunque si trovi". In Sinatra puoi farlo usando lo url
helper method. Usando ERB come lingua modello questo sarebbe simile:
<link href="<%= url('/style.css') %>" rel="stylesheet" type="text/css" />
Ciò garantirà il collegamento ad style.css
sarà corretto, ovunque si trova la vostra applicazione.