【问题标题】:JSP doesn't see CSSJSP 看不到 CSS
【发布时间】:2015-03-12 13:59:02
【问题描述】:

我正在尝试制作一个简单的 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 在那里不起作用。 可能是什么问题?

【问题讨论】:

  • 您在 web.xml 中的 规范在哪里?因为默认根在 webapp/index.jsp 而不是 webapp/pages/index.jsp
  • 试图将这个添加到web.xml中,没有任何改变。这个页面本身在浏览器中打开,唯一的问题是css不起作用。
  • 删除“../css”中的“..”,这样你就告诉服务器css文件夹在根目录中(在你的情况下它是)
  • @Sai 你不需要在 web.xml 中使用&lt;welcome-file-list&gt; 来使应用程序正常工作。
  • @LuiggiMendoza - 我知道 css 文件没有加载可能是因为 css 文件的路径与 OP 设置应用程序的方式有冲突。我只是想找出他的应用程序是如何设置来处理主页的。如果 OP 打开了浏览器,他/她可能会在“网络”选项卡控制台中注意到 css 文件请求没有通过

标签: java css jsp servlets


【解决方案1】:

您的应用存在两个问题:

  1. 在 JSP 中,您应该使用 ${pageContext.request.contextPath} 来附加 URL 的基本路径。有了这个,您可以确定您将使用绝对路径而不是 URL 的相对路径。所以,这个:

    <link rel="stylesheet" type="text/css" href="../css/style.css"/>
    

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

    这也可以通过使用来自 JSTL 的 &lt;c:url&gt; 来完成:

    <link rel="stylesheet" type="text/css" href="<c:url value='/css/style.css' />"/>
    
  2. 您的 servlet 正在映射到您的应用程序中发出的每个请求。请注意,这包括对此类 CSS 文件等资源的简单请求。如果您没有成功处理这些请求,您可能会收到错误响应或空响应或其他什么,这取决于您如何处理 servlet 中对 CSS 文件的请求。我建议您更改 servlet 的 URL 模式以映射到特定路径。

    <servlet-mapping>
        <servlet-name>IndexServlet</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>
    

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2017-08-03
    相关资源
    最近更新 更多