我正在使用ibm Websphere并创建一个动态Web元素。我的所有JSP文件都在我的WEB-INF文件夹中,我在web.xml文件中使用servlet映射使其可访问。到目前为止,此方法运行良好。但是我的CSS有问题。和往常一样,我的CSS文件位于名为css的文件夹中的WebContent中。这是我的jsp的链接

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

我没有运气让我的css显示...
我想念什么?

最佳答案

浏览器将生成的HTML输出中的相对URL相对于请求URL进行解释(如您在浏览器的地址栏中看到的),而不是相对于它们在服务器磁盘文件系统中的物理位置。是必须通过HTTP请求下载它们的Web浏览器,而不是必须以某种方式从磁盘包括它们的Web服务器。
一种方法是对这些资源使用相对于域的路径,即以/开头。您可以使用${pageContext.request.contextPath}动态内联当前Web应用程序的上下文路径。

<link rel="stylesheet" href="${pageContext.request.contextPath}/css/styles.css">
这将最终出现在生成的HTML输出中,如下所示:
<link rel="stylesheet" href="/yourContextPath/css/styles.css">
这样,浏览器将能够正确下载它们。
也可以看看:
  • Browser can't access/find relative resources like CSS, images and links when calling a Servlet which forwards to a JSP
  • 10-05 21:24