我正在使用ibm websphere并创建动态网络项目。我的所有JSP
文件都在我的WEB-INF文件夹中,我在web.xml
文件中使用servlet映射使它们可以访问。到目前为止,此工作正常。但是我的CSS有问题。与往常一样,我的CSS
文件位于名为css的文件夹中的WebContent
中。继承我jsp
<link rel="stylesheet" href = "css/styles.css">
我没有运气让我的CSS显示...
我错过了什么?
答案 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控制台可能非常有助于了解浏览器尝试获取的内容。
希望这有帮助!