JSP 没看到 CSS
JSP doesn't see CSS
我正在尝试制作一个简单的 Servlets + JSP 项目。它的结构如下所示:
index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>App</title>
<link rel="stylesheet" type="text/css" href="../css/style.css"/>
</head>
<body>
<h1>Header</h1>
</body>
</html>
style.css:
body {
background-color: beige;
}
web.xml:
<web-app>
<display-name>App</display-name>
<servlet>
<servlet-name>IndexServlet</servlet-name>
<servlet-class>com.example.web.IndexServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
当我启动应用程序并在浏览器中打开它时,我看到了 index.jsp 页面,但它的背景是白色的,所以 css 在那里不起作用。
可能是什么问题?
您的应用有两个问题:
在 JSP 中,您应该使用 ${pageContext.request.contextPath}
附加 URL 的基本路径。有了这个,你可以确定你会为你的 URLs 使用绝对路径而不是相对路径。所以,这个:
<link rel="stylesheet" type="text/css" href="../css/style.css"/>
将会
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css"/>
这也可以通过使用来自 JSTL 的 <c:url>
来完成:
<link rel="stylesheet" type="text/css" href="<c:url value='/css/style.css' />"/>
您的 servlet 正在映射到 您的应用中发出的每个请求。请注意,这包括对资源的简单请求,例如 CSS 文件。如果您没有成功处理这些请求,您可能会收到错误响应或空响应或其他任何内容,具体取决于您如何处理 servlet 中对 CSS 文件的请求。我建议您更改 servlet 的 URL 模式以映射到特定路径。
<servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
我正在尝试制作一个简单的 Servlets + JSP 项目。它的结构如下所示:
index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>App</title>
<link rel="stylesheet" type="text/css" href="../css/style.css"/>
</head>
<body>
<h1>Header</h1>
</body>
</html>
style.css:
body {
background-color: beige;
}
web.xml:
<web-app>
<display-name>App</display-name>
<servlet>
<servlet-name>IndexServlet</servlet-name>
<servlet-class>com.example.web.IndexServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
当我启动应用程序并在浏览器中打开它时,我看到了 index.jsp 页面,但它的背景是白色的,所以 css 在那里不起作用。 可能是什么问题?
您的应用有两个问题:
在 JSP 中,您应该使用
${pageContext.request.contextPath}
附加 URL 的基本路径。有了这个,你可以确定你会为你的 URLs 使用绝对路径而不是相对路径。所以,这个:<link rel="stylesheet" type="text/css" href="../css/style.css"/>
将会
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css"/>
这也可以通过使用来自 JSTL 的
<c:url>
来完成:<link rel="stylesheet" type="text/css" href="<c:url value='/css/style.css' />"/>
您的 servlet 正在映射到 您的应用中发出的每个请求。请注意,这包括对资源的简单请求,例如 CSS 文件。如果您没有成功处理这些请求,您可能会收到错误响应或空响应或其他任何内容,具体取决于您如何处理 servlet 中对 CSS 文件的请求。我建议您更改 servlet 的 URL 模式以映射到特定路径。
<servlet-mapping> <servlet-name>IndexServlet</servlet-name> <url-pattern>/index</url-pattern> </servlet-mapping>