Cuando usa href="style.css"
, está especificando un vínculo relativo a la hoja de estilo. El camino real que va a solicitar su navegador dependerá de la dirección URL de la página actual, así que por ejemplo si tiene una ruta como:
get '/things/:id' do
#look up thing with id = :id
erb :my_view
end
continuación, el navegador buscará la hoja de estilo en /things/style.css
. Obviamente, esto no funcionará si su hoja de estilo está en el nivel superior en su directorio public
.
La solución rápida es utilizar una ruta de acceso absoluta a su hoja de estilo: href="/style.css"
(tenga en cuenta el carácter /
). Esto hará que el navegador siempre busque la hoja de estilo en la raíz del servidor.
Esto supone que su aplicación siempre está montada en la raíz de su servidor y fallará si la ejecuta en un subdirectorio. Desea poder decir "busque la hoja de estilo en la raíz de esta aplicación, donde sea que esté". En Sinatra puedes hacer esto usando el url
helper method. El uso de ERB como su lenguaje de plantillas esto se vería así:
<link href="<%= url('/style.css') %>" rel="stylesheet" type="text/css" />
Esto asegurará que el enlace a style.css
será correcta siempre que su aplicación se encuentra.