如何将我的CSS连接到存储在WEB-INF文件夹中的JSP文件?的Websphere / JSP

时间:2012-04-27 17:36:39

标签: html css jsp

我正在使用ibm websphere并创建动态网络项目。我的所有JSP文件都在我的WEB-INF文件夹中,我在web.xml文件中使用servlet映射使它们可以访问。到目前为止,此工作正常。但是我的CSS有问题。与往常一样,我的CSS文件位于名为css的文件夹中的WebContent中。继承我jsp

的链接
<link rel="stylesheet" href = "css/styles.css">

我没有运气让我的CSS显示...
我错过了什么?

2 个答案:

答案 0 :(得分:12)

生成的HTML输出中的相对URL是由浏览器相对于请求URL解释的(如浏览器的地址栏中所示),而不是它们在服务器磁盘文件系统中的物理位置。这就是webbrowser必须通过HTTP请求下载它们,不是网络服务器必须以某种方式从磁盘中包含它们。

其中一种方法是为这些资源使用域相对路径,即以/开头。您可以使用${pageContext.request.contextPath}动态内联当前webapp的上下文路径。

<link rel="stylesheet" href="${pageContext.request.contextPath}/css/styles.css">

这将最终生成的HTML输出如下:

<link rel="stylesheet" href="/yourContextPath/css/styles.css">

这样浏览器就可以正确下载它们了。

另见:

答案 1 :(得分:0)

我认为您需要从浏览器的角度来看它,它是页面的URL,上下文路径和当前路径。

如果您的应用上下文路径是“myApp”,那么您可以执行以下操作以使其正常工作:

<link rel="stylesheet" href = "/myApp/css/styles.css">

如果你想让它相对,所以它不依赖于上下文路径,那么如果你的网址看起来像http://localhost:8080/myApp/myservlet/file.jsp

然后您的链接标记将是

<link rel="stylesheet" href = "../css/styles.css">

Firebug或Chrome控制台可能非常有助于了解浏览器尝试获取的内容。

希望这有帮助!