Spring MVC静态资源定位和映射

Evg*_*rov 1 css java spring-mvc

我在Spring MVC中处理css文件时遇到问题.css文件的位置和映射有问题.

如果css文件在:

-src
  -main
     +java
     +resources
     -webapp
        -css
           style.css
        +WEB-INF
Run Code Online (Sandbox Code Playgroud)

(Maven项目)

我用:

 <mvc:resources location="/css/" mapping="/css/**"/>
 <mvc:annotation-driven/> 
Run Code Online (Sandbox Code Playgroud)

in dispatcher-servlet.xml和access访问它jsp:

<head>
  <title>Insert title here</title>
  <link href="/css/style.css" rel="stylesheet" type="text/css">
</head>
Run Code Online (Sandbox Code Playgroud)

gig*_*dot 5

使用JSTL c标记来解决上下文路径问题:

 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 ...
 <link rel="stylesheet" type="text/css" href="<c:url value='/css/style.css'/>"/>
Run Code Online (Sandbox Code Playgroud)

这会给你:

 <link rel="stylesheet" type="text/css" href="/{context-path}/css/style.css"/>
Run Code Online (Sandbox Code Playgroud)

建议使用此标记,您应该用它包装所有URL,因为JSLT处理器将为您生成正确的上下文路径,即使您决定稍后更改上下文路径而不必遍历所有jsp文件中的每个链接.