某项目webapp下有子目录res,其中有img、css、js等存放静态资源的文件夹。
在定义了dispacher-servlet的<url-pattern>/</url-pattern>后,
<!-- 配置DispatcherServlet --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
为访问静态资源,特别在dispacher-servlet.xml定义了<mvc:resource/>标签
<!-- 注解驱动 --> <mvc:annotation-driven /> <!-- 静态资源访问,约定:静态资源都放在web应用根的res文件夹中 --> <mvc:resources location="/res/" mapping="/res/**" />
随后定义了HomeController,如下:
@Controller
public class HomeController { @RequestMapping(method=RequestMethod.GET) public String home() { return "home"; } }
结果,无法访问静态资源
为Controller加上url模式,
@Controller public class HomeController { @RequestMapping(value="/", method=RequestMethod.GET) public String home() { return "home"; } }
之后,访问静态资源正常了。
<mvc:resources mapping="/xxx/**" location="/xxx/"/>无效,可能和Controller的URL模式有关