Html SpringWar中的CSS文件返回404

Html SpringWar中的CSS文件返回404,html,css,jsp,maven,Html,Css,Jsp,Maven,我有一个用Spring和Maven构建的JavaEE应用程序。它具有通常的项目结构。这里有一点层次结构 MyApplication src main webapp WEB-INF layout header.jsp styles main.css 我想在JS

我有一个用Spring和Maven构建的JavaEE应用程序。它具有通常的项目结构。这里有一点层次结构

MyApplication
    src
        main
            webapp
                WEB-INF
                    layout
                        header.jsp
                styles
                    main.css
我想在JSP中包含该CSS文件。我有下面的标签

<c:url var="styleSheetUrl" value="/styles/main.css" />
<link rel="stylesheet" href="${styleSheetUrl}">

我想DispatcherServlet不知道如何处理CSS请求。处理这个问题的最佳方式是什么?我宁愿不必更改所有的请求映射

您需要将Spring配置为单独处理对应用程序的servlet请求(CSS、JS、图像)。为此,请将Spring配置配置为通过单独的顶级目录(例如“static”)将请求映射到静态文件:


然后将JSP更改为使用路径
/static/styles/main.css


注意,按照惯例,将“样式”目录命名为“css”。

在web.xml中添加以下内容

<servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>*.js</url-pattern>
</servlet-mapping>

违约
*.css
违约
*.js
并使用以下内容包含您的css

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


注意:查找CSS文件的不是JSP。是webbrowser在检索并解析了JSP.Edited生成的一堆HTML之后才这样做的。只是恢复得很快;)+谢谢。在我的应用程序上下文XML中使用了
,它成功了(稍后我将返工以使用静态文件夹)。它成功了!对于任何其他类型的静态资源,应使用适当的
<servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>*.js</url-pattern>
</servlet-mapping>
<link rel="stylesheet" href="styles/main.css">