在写上一篇笔记的时候,自己也是刚刚学习的一个小白,通过长时间的踩坑发现上一篇的方法可用,但是还是不明白其中的含义。最近一段时间遇到了比较头大的问题,在处理文件上传时,将文件存储在服务器中。此时发现spring boot 静态资源映射,可以将一个磁盘中的文件夹,映射到项目中的一个文件夹。这样我们可以将数据真实的存储在项目外的一个文件夹中,然后通过映射来访问文件中的信息。下面我们一起来学习一下spring boot 的映射。
我打算分为两篇文章解释:
第一篇 spring boot 的默认访问静态资源
第二篇 Spring boot 的静态资源映射映射《二》 https://blog.youkuaiyun.com/Lfanmujin/article/details/90297556
spring:
mvc:
static-path-pattern: /**
这种方式是进行唯一的静态资源映射,上述的这种映射与spring boot 默认的静态资源文件配置是相同的,那么他是怎么找到静态资源文件的呢?
下面就是他的访问流程:
在spring boot 项目中,默认 /** 寻找静态资源文件是访问resources中的这些文件夹:
classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources
所以即使我们没有配置静态资源映射,也是可以访问到的。
举个栗子
当我们启动服务器去访问01-01.png时,请求地址写成http://localhost:8080/01-01.png,那么去resources下面找默认的四个文件夹,找到static,之后再访问static下面,看看有没有这个文件,明显存在,自然可以找到
那么下一个问题,
在static中还有一个文件夹下面有一个01-01.png ,我们是否也可以读到呢,试验一下。为了区分我们访问img-ch.img ,使用火狐浏览器
如我所料,找不到。为什么会这样?是因为项目默认/**请求只会在默认的四个文件夹下找,不会 在往下层子文件下面找了
下面我们再考虑一下这样写
spring:
mvc:
static-path-pattern: /static/**
这样是可以去访问到static下面的子文件夹的
下一篇 Spring boot 的静态资源映射映射《二》 https://blog.youkuaiyun.com/Lfanmujin/article/details/90297556