I had the same problem with images. It seemed to work some times and not
others, depending on the previous page path. I ended up using absolute paths
or ../../ . I get an empty string when I use <h:outputText
value="#{facesContext.externalContext.requestContextPath}"/> anywhere, how
come?> Subject: Getting the ContextPath to set stylesheet href properly > > > Hi guys, > > Having some real problems with paths in my Faces app for some reason! > > I am using Oracle App Server 10g 10.1.2 with MyFaces 1.1.0, JSP 1.2 & > Web-app 2.3. Wish I could use Web-app 2.4 but 10.1.2 does not support > it, and it requires DTDs in config xml files etc. Lots of fun. > > File structure: > \index.jsp > \style\css\project.css > \uploadfile.jsp > \results\uploadfile.jsp > \results\pageheader.jsp > \results\externaldata.jsp > > I am including pageheader.jsp in each page in my project like so: > > <?xml version="1.0" encoding="utf-8" standalone="yes" ?> > <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2" > xmlns:f="http://java.sun.com/jsf/core" > xmlns:h="http://java.sun.com/jsf/html" > xmlns:t="http://myfaces.apache.org/tomahawk"> > <jsp:directive.page contentType="text/html;charset=utf-8"/> > <f:view locale="#{facesContext.externalContext.request.locale}"> > <f:loadBundle basename="web.bundles.Messages" var="msg"/> > <html> > <head> > <link rel="stylesheet" href="style/css/dcts.css" type="text/css"/> > <title><h:outputText value="#{msg.title}" /></title> > </head> > <body width="100%"> > <jsp:include page="pageheader.jsp" flush="true"/> <!-- or > /results/pageheader.jsp in files in the "root" --> > > This works some times but not always. I have also tried /style/ and > ../style/ and it does not work every time either. It seems to depend > on where I'm "coming from" ie coming from index.jsp, then calling a > /results/externaldata.jsp with href="style/" works. But then if I'm in > /results/uploadfile.jsp and call /results/externaldata.jsp, then the > href="style/" does not work, and it requires ="../style". > > So I have decided to provide the entire path, using Context Path or > something similar. > > I have tried: > <link rel="stylesheet" href="<h:outputText > value="#{facesContext.externalContext.requestContextPath}" > />/style/css/project.css" type="text/css"/> > does not work > > <link rel="stylesheet" > href="${facesContext.externalContext.requestContextPath}/style/css > /project.css" > type="text/css"/> > does not work > > <link rel="stylesheet" href="${pageContext.request.contextPath} > /style/css/project.css" type="text/css"/> > does not work > > Also, I'm looking for a "universal" way to refer to this > /results/pageheader.jsp include file. In some places I have to use > /results and in others I can just use pageheader.jsp. There must be a > way to get the my application path (in the file system) and use it in > the jsp:include call rather than sometimes using /results and other > times not. > > This seems to be a pretty easy thing, but its not working for me, at > least not consistently. > > How are the rest of you doing this? > > Thanks. > Wayne

