关于SpringMVC的使用之<mvc:resources>标签不起作用的bug

项目场景:

使用SpringMVC对项目中静态资源的访问,如js、css和img等文件。


问题描述

SpringMVC中前端控制器的url-pattern设置为 / ,会匹配到所有的访问路径,这样不会执行Tomcat内置的DefaultServlet处理。

<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <!--/  会匹配到所有的访问路径,但不会匹配像*.jsp这样的url-->
    <url-pattern>/</url-pattern>
</servlet-mapping>

可以采用两种方式解决该问题

方式一:SpringMVC配置文件中使用mvc:resouces标签

<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/img/**" location="/img/"/>

方式二:SpringMVC配置文件中使用mvc:default-servlet-handler/标签

<mvc:default-servlet-handler/>

问题详情:在使用了方式一配置之后重启服务器,还是无法访问静态资源。


原因分析:

1.看到有文章说是tomcat项目里面的SpringMVC配置文件没有更新,经过查看发现已经更新了。
2.看到有人说是Idea的bug,遂重启Idea,有用。详情见:关于idea springmvc的标签<mvc:resources>不能正确的过滤资源的问题,该文章说的很详细。


解决方案:

重启Idea

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值