Creo que el problema de Sergionni es doble.
Primero, es cierto que el llamado pariente raíz es, como dijo BalusC, de hecho un dominio relativo, entonces, en el ejemplo es relativo a http://example.com/
y no a http://example.com/context/
.
lo que debe especificar
<link rel="stylesheet" type="text/css" href="${request.contextPath}/styles/decoration.css" />
Por cierto BalusC, felicitaciones, esta es la primera vez que veo esto explicaba correctamente! Luché mucho para descubrir esto.
Pero, si desea simplificar y sugerir:
<link rel="stylesheet" type="text/css" href="styles/decoration.css" />
suponiendo que el directorio de estilo es una sibbling de la página actual, entonces puede tener el segundo problema:
Usted está entonces en el método relativo de URL y, si usted ingresó en esta página mediante un reenvío y no una redirección, su navegador puede ser engañado y no puede seguir la ruta relativa.
Para resolver este segundo problema, debe añadir lo siguiente:
<head>
<base href="http://${request.serverName}:${request.serverPort}${request.contextPath}${request.servletPath}" />
El elemento de base debe preceder a cualquier enlace.
Con el comando base, le dice a su navegador dónde está realmente.
Espero que ayude.
Y por cierto otra cosa extraña en este maravilloso mundo JSF:
para enlazar desde una página a su plantilla facelet, la raíz de enlace relativa es, esta vez, incluyendo el contexto así:
<ui:composition template="/layouts/layout.xhtml">
estos links realmente a http://example.com/context/layouts/layout.xhtml
y no a http://example.com/layouts/layout.xhtml
como por <a>
o <link>
.
Jean-Marie Galliot
sí, eso funcionó para mí, sin la primera barra – sergionni