spring MVC设置不拦截静态资源

在spring+springMVC项目中,经常会出现无法读取js css等文件的情况,那是因为URL请求被拦截的原因。实际上,静态文件是不需要被拦截的,都应该加载。

解决办法:

方案一:拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml)

 <!-- 添加注解驱动 -->
<mvc:annotation-driven />
<!-- 配置 springMVC 不拦截的静态资源 -->
<!-- 必须加,否则 RequestMapping 失效 -->
<mvc:resources mapping="/js/*" location="/resources/js"/>
<!-- css 下所有文件都映射到 /bootstrap/css/ (*: 只处理文件夹下一级; **: 文件夹下多级) -->
<mvc:resources mapping="/css/*" location="/resources/css/"/>
<mvc:resources mapping="/images/*" location="/resources/images/"/>

方案二:使用默认的servlet处理静态资源(涉及spring-mvc.xml,web.xml)

在spring-mvc.xml中添加:

<!--启用默认Servlet-->
<mvc:default-servlet-handler/>

在web.xml中添加:

<!--增加对静态资源的处理,当前的设置必须在Spring的Dispatcher的前面-->
<servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
        <url-pattern>/resources/css/*</url-pattern>
        <url-pattern>*.js</url-pattern>
        <url-pattern>/resources/js/*</url-pattern>
</servlet-mapping>

方案三:修改spring的全局拦截设置为*.do的拦截(涉及web.xml)

<!-- 拦截所有请求 -->
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <!--<url-pattern>/</url-pattern>-->
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值