当前位置: 代码迷 >> Java Web开发 >> <mvc:resources 地图ping="" location="">进行静态资源的访问
  详细解决方案

<mvc:resources 地图ping="" location="">进行静态资源的访问

热度:175   发布时间:2016-04-16 22:25:24.0
<mvc:resources mapping="***" location="***">进行静态资源的访问
问题是这样的
我已经在配置文件中配置了
<mvc:resources mapping="/images/**" location="/WEB-INF/resource/images/" />
jsp页面中用<c:url value="/images/icon/icon-close.png">
<style>
    .icon_close{
            background-image: url('/images/icon/icon-close.png');
    }
</style>
页面里面
<a class="icon_close">&nbsp;&nbsp;&nbsp;&nbsp;</a>
就获得不到这个背景图片  firebug报的404找不到资源我看了下根本没有用到上面的配置

我要改成 <a class="icon_close" <c:url value="/images/icon/icon-close.png">>&nbsp;&nbsp;&nbsp;&nbsp;</a>
这样才能找到
 很麻烦,我不想每个都写过去
我想在css样式中用   怎么解


------解决方案--------------------
修改一下你的配置文件试一试,
加上
<mvc:default-servlet-handler />

在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。 
------解决方案--------------------
spring mvc对静态资源的管理  是它最大的弱点
------解决方案--------------------
在SpringMVC3.0之后推荐使用一: 

<!-- 静态资源访问 -->
  <mvc:default-servlet-handler/>

 

以下两种在SpringMVC3.0之前可以使用

也可以使用二:
  <!-- 静态资源访问
  <mvc:resources location="/img/" mapping="/img/**"/> 
  <mvc:resources location="/js/" mapping="/js/**"/>  
  <mvc:resources location="/css/" mapping="/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>*.gif</url-pattern>

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

 如果这些都不行 我也没有办法了~~~~只能说 一切源于配置,多看看配置
  相关解决方案