无法为我的Spring Maven项目映射资源

时间:2017-06-13 03:59:33

标签: java spring maven jsp spring-mvc

我无法在我在Maven中构建的Spring应用程序中映射我的静态资源,如css和js文件。

我已经遵循了与此问题相关的指南,但它仍然为我的资源提取了404状态。

我有以下目录列表

/src/main/webapp/
\
 WEB-INF
        \
         views
         applicationContext.xml
         dispatcherServlet.xml
         web.xml
 resources
         \
          themes
               \
                bootstrap
                        \
                         css (bootstrap.min.css is inside)
                         js  (bootstrap.min.js is inside)

我的dispatcher-servlet.xml中有mvc:resource映射

<mvc:resources mapping="/resources/**" location="/resources/themes/bootstrap/"/>

以下是我的LoginPage.jsp文件。

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html>
    <head>
    <spring:url value="/resources/css/bootstrap.min.css" var="loginCss" />
    <spring:url value="/resources/js/bootstrap.min.js" var="loginJs" />

    <link href="${loginCss}" rel="stylesheet" />
    <script src="${loginJs}"></script>
...
</html>

检查后,它将获取404状态下面的URL:

http://localhost:8080/{project-name}/resources/css/bootstrap.min.css 
http://localhost:8080/{project-name}/resources/css/bootstrap.min.js 

1 个答案:

答案 0 :(得分:0)

检查web.xml上的servlet-mapping。

  <servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

修改

将以下servlet映射添加到web.xml

  <servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/resources/**</url-pattern>
  </servlet-mapping>