官方文档(https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content)介绍了可以自配置的一些东西,下面我来尝试。
1、修改静态资源访问路径(加前缀)
首先,对于放在springboot默认静态资源文件夹下的静态资源(照片、视频、js、css啥的),可以通过当前项目根路径/ + 静态资源名
访问到。默认的静态资源文件夹有 /static
/public
/resources
/META-INF/resources
这些文件夹都是建在resources
目录下的。
想要修改访问的路径,比如想要用/res/air.jpg
访问,就得自定义了,做法是在配置文件中(这里使用yaml)这样写:
spring:
mvc:
static-path-pattern: "/res/**" #这个双引号不加也可以,不过官方示例加了,咱就加上吧
#上面的配置改变了静态资源默认访问路径,比如之前可以通过8080:/air.jpg访问,但修改后只能通过8080:/res/air.jpg访问
这时候就能通过/res/air.jpg
访问air.jpg了,原来的/air.jpg
就访问不到了。
2、定制静态资源存放的文件夹
在1中说过,springboot有默认静态资源文件夹下,如果想把静态资源放到其他文件夹下则访问不到,那怎么才能让其他文件夹成为静态资源文件夹呢?只要做如下配置:(注意看注释)
spring:
mvc:
static-path-pattern: "/res/**" #这个双引号不加也可以,不过官方示例加了,咱就加上吧
#上面的配置改变了静态资源默认访问路径,比如之前可以通过8080:/air.jpg访问,但修改后只能通过8080:/res/air.jpg访问
resources:
static-locations: [classpath:/abc/,classpath:/static/]
#上面的配置定制了静态资源存放的文件夹,一但定制,默认的静态资源文件夹就会失效
#要访问静态资源,依然是通过“项目名 + static-path-pattern + 静态资源名(eg:air.jpg)”来访问
值得注意的是,一但定制,默认的静态资源文件夹就会失效,想要再使用默认的,就得把默认的也加入到static-locations参数里面