springmvc、springboot静态资源访问配置

如何访问项目中的静态资源?

一.springmvc

springmvc中访问静态资源,如果DispatcherServlet拦截的为"",那么静态资源的访问也会交给DispatcherServlet处理,就会因为找不到资源的映射出现404的问题:

No mapping found for HTTP request with URI [/templates/file/test.xlsx] in DispatcherServlet with name 'dispatcherServlet' 

解决办法:

1.服务器的defaultServlet

以tomcat为例,在 web.xml中增加配置

<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>
 <servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.css</url-pattern>
 </servlet-mapping>  
 <servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.xlsx</url-pattern>
 </servlet-mapping>  

 

2.spring的mvc:resources 配置

spring在3.0.4之后提供了对系统静态资源文件访问

<mvc:resources mapping="/files/**" location="/files/" /> 

使用 <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.

二.springboot

在application.properties增加配置:

spring.mvc.static-path-pattern=/dist/**
spring.resources.static-locations=classpath:webapp/dist/

spring.mvc.static-path-pattern:指定静态文件类型
spring.resources.static-locations:指定静态文件路径

转载于:https://www.cnblogs.com/wollow/p/10840026.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值