默认情况下,Spring提供了如下几个静态资源目录:
目录说明/staticclasspath:/static//publicclasspath:/public//resourcesclasspath:/resources//META-INF/resourcesclasspath:/META-INF/resources可以通过spring.resources.static-locations配置指定静态文件的位置。 注意:一旦自己指定的静态资目录,系统默认的静态资源目录就会失效。一般情况下系统默认的就已经够使用了,尽量不要自己定义。
spring:
resources:
static-locations: classpath:/mystatic/ # 指定静态资源目录
favicon.icon
如果在配置的静态资源目录中favicon.icon文件,SpringBoot会自动将其设置为应用图标。
欢迎页面SpringBoot支持静态和模板欢迎页,它首先在静态资源目录查看index.html文件作为首页,若未找到则查找index模板。
使用webjars管理JS和CSS WebJars简介我们在开发Java web项目的时候会使用像Maven,Gradle等构建工具以实现对jar包版本依赖管理,以及项目的自动化管理,但是对于JavaScript,Css等前端资源包,一般情况下,我们采用拷贝到webapp下的方式,通过手工进行管理,这种通方式容易导致文件混乱、版本不一致等问题,而且无法对这些资源进行依赖管理。
WebJars通过将这些通用资源(JavaScript,Css等)打成jar包文件,然后借助Maven对资源进行统一依赖管理,从而保证这些WEB资源版本的唯一性。
WebJars官网:https://www.webjars.org/ 。我们可以在这个网站上找到自己需要的资源,然后在自己的工程中添加Maven依赖,就可以直接使用这些资源了。
WebJars并不仅仅是依赖这么简单,它还提供了如下功能:
- 将静态资源版本化,更利于升级和维护。 传统的静态资源需要自行维护,资源种类繁多,使得项目后期越来越臃肿,维护版本升级也变得困难,而使用WebJars方式进行管理后,版本升级问题迎刃而解。
- 剥离静态资源,提高编译速度和打包效率。 经测试,使用WebJars的方式管理依赖可以给项目的编译速度带来2-5倍的速度提升,还在犹豫的小伙伴快点尝试起来吧!
- 实现资源共享,有利于统一前端开发。
- 清晰的管理web依赖
- 通过Maven、Gradle等项目管理工具就可以下载WEB依赖
- 解决WEB组件中传递依赖的问题以及版本问题
- 页面依赖的版本自动检测功能
- webjars就是以jar包的方式引入静态资源;
- 通过WebJars可以让我们以jar包的形式来使用前端的各种框架、组件。
- WebJars提供给我们前端资源的jar包形势,我们就可以进行依赖管理。
org.webjars.bower
jquery
3.5.1
org.webjars
bootstrap
4.5.0
第二步:application.yml
server:
port: 80
servlet:
context-path: /wjd
spring:
thymeleaf:
#前缀,也就是模板存放的路径
prefix: classpath:/templates/
#编码格式
encoding: UTF-8
#关闭缓存,不然无法看到实时页面
cache: false
#后缀
suffix: .html
#设置不严格的html
mode: HTML
servlet:
content-type: text/html
第三步:定义用户请求的Controller:
@Controller
public class DispatcherController {
@RequestMapping("/demo")
public String demo(){
return "demo";
}
@RequestMapping("/demo2")
public String demo2(){
return "demo2";
}
}
第四步:页面引入
webjars不使用版本定位工具
×
Hello, Dalaoyang!
haha
JQuery
$("#btn").click(function () {
alert(23+32);
});
SpringBoot会将webjar中路径/webjars/**
的访问重定向到项目的classpath:/META-INF/resources/webjars/*
中。
单击按钮:
像上面的每个引用文件里都要带一个版本,假如项目要升级,需要挨个修改版本号,十分麻烦。解决办法,Maven中添加版本定位工具:
org.webjars
webjars-locator-core
0.45
调整后的页面代码:
WebJars使用版本定位工具
×
Hello, Dalaoyang!
JQuery
$("#btn").click(function () {
alert(23+32);
});