静态资源是例如js css img等资源
SpringBoot里的映射规则有很多种
让我们分类来了解:
一、配置webjars的路径
所有/webjars/**
都会在/META-INF/resources/webjars/下寻找静态资源
webjars:以jar包的方式导入静态资源
可以以Maven依赖的方式引入例如jquery bootstrap等js文件
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1</version>
</dependency>
这是一项比较神奇的功能…我也是第一次见
之前都是直接把js文件给加到项目中的
在上图中的这个例子里 通过ip:8080/webjars/jquery/3.3.1/jquery.js可直接访问到jquery文件
在访问时 只需写webjars下的资源名称即可
底层是这样的:
@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)
public class ResourceProperties {
...
}
因此 可在ResourceProperties这个类里设置和静态资源相关的参数 缓存时间
二、配置静态资源映射的路径
在SpringBoot中 有五个静态资源默认的寻找位置:
classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
/ :即当前项目的根路径
classpath:classpath就是类路径
main包下的java包或resources包都属于类路径
(不过基本都是放在resources下 几乎不会放在java下的…)
静态资源默认被/**
映射
相当于 访问ip:8080/abc即会从静态资源文件夹里找abc
访问时 无须带静态资源文件夹名称
例:
上图这种情况 直接通过http://ip:8080/asserts/js/bootstrap.min.js来访问
三、配置欢迎页的映射的路径
SpringBoot会搜索静态资源文件夹下的所有名为index.html的页面
且被/**
映射 即 访问ip:8080/视为访问静态资源文件夹下的名为index.html的页面文件
四、配置标签中的小图标的路径
小图标即favicon 是在浏览器小标签左侧的小图标
SpringBoot会扫描静态资源文件夹下的所有名为favicon.ico的图标
且被/**
映射 即 访问ip:8080/视为访问静态资源文件夹下的名为favicon.ico的图标
该静态资源的路径还可自己配置
在配置文件中用spring.resources.static-locations
进行配置
例:spring.resources.static-locations=classpath:/aaa,classpath:/bbb
多个路径之间用逗号分隔