码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC 的<mvc:resources>使用映射路径展示文件服务器上的图片

时间:2018-05-14 20:22:02      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:css   location   tar   目录   访问   cat   sim   lan   att   

<servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:application-web.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

后来发现原来这个还与org.springframework.web.servlet.DispatcherServlet的中的url-pattern配置有关

原因是:使用 / 拦截了所有的请求,会影响到静态资源文件的获取,这样就需要用mvc:default-servlet-handler和mvc:resources来帮住分类完成获取静态资源的责任

 

解决方案:

<mvc:resources mapping="/images/**" location="/WEB-INF/images/" cache-period="31556926"/>
<mvc:resources mapping="/js/**" location="/WEB-INF/js/" cache-period="31556926"/>
<mvc:resources mapping="/css/**" location="/WEB-INF/css/" cache-period="31556926"/>

  使用<mvc:resources/>元素,把mapping的URI注册到SimpleUrlHandlerMapping的urlMap中,key为mapping的URI pattern值,而value为ResourceHttpRequestHandler,这样就巧妙的把对静态资源的访问由HandlerMapping转到ResourceHttpRequestHandler处理并返回,所以就支持classpath目录,jar包内静态资源的访问.另外需要注意的一点是,不要对SimpleUrlHandlerMapping设置defaultHandler。因为对static uri的defaultHandler就是ResourceHttpRequestHandler,否则无法处理static resources request。

SpringMVC 的<mvc:resources>使用映射路径展示文件服务器上的图片

标签:css   location   tar   目录   访问   cat   sim   lan   att   

原文地址:https://www.cnblogs.com/hollowcabbage/p/9037870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!