0x80070035找不到网络路径_【spring boot】spring-boot中路径的配置

今天我们讲一下spring-boot中有关访问路径配置的知识,spring.mvc.static-path-pattern和spring.resources.static-locations的区别。

v2-9b47cb3fe1fdb18bec4ad33683e6c134_b.jpg

没有配置

debug启动项目,看一下WebMvcAutoConfiguration类中的属性,如图

v2-8f748aad66a891ffec047164dd08ecdd_b.jpg

v2-c017eb157f1c71a16764a1e03213a3c4_b.jpg

pathPatterns:表示请求的路径

locationValues:表示资源存放的位置

如果我的请求为“http://localhost:80/index.html”,则根据pathPatterns的配置,我会解析出“index.html”,并在locationValues配置的四个位置找资源“index.html”(最后一个“/”不属于classPath中的,不做考虑)。

而恰巧,在目录“public”下有index.html,所以下面的访问是可以成功的

v2-a946e5c79d1e97b83def7c200f190497_b.jpg

配置spring.mvc.static-path-pattern

现在我们配置spring.mvc.static-path-pattern,如下图

v2-ffbb52d81d539340b4f0b50b37704c9c_b.jpg

pathPatterns值为“/boot/**”,locationValues还是那四个默认值。

我们访问“http://locahost:8080/index.html”则找不到资源。

v2-fcb2abf211d7c9374a803725a49a98cf_b.jpg
再次这么访问就会找不到资源

当我们访问“http://localhost:8080/boot/index.html”

v2-3e205bf71bb6c38d86209a187f822899_b.jpg

访问到了,而且注意这是public下的资源,不是boot下的资源,验证我们的分析是没有错的。

配置spring.resources.static-locations

如图,我们配置spring.resources.static-locations。需要注意的是,这个配置得加上classpath:

v2-90c932d55b72d92914769f88e6d5a021_b.jpg

v2-2a83210f47ecd16e548fd5ee005f9e96_b.jpg

pathPatterns值为“/”,locationValues值为“classpath:/boot/”,那就是我们访问“http://localhost:8080/index.html”时,能访问到“boot”目录下的“index.html”,结果如下

v2-73cd23c4b494c21a7b0204a3c1155197_b.jpg

总结

spring.mvc.static-path-pattern:只会改变请问路径,资源还是放在默认的四个路径下

spring.resources.static-locations:不会改变访问路径,只是改变资源的放置路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值