SpringBoot+thymeleaf如何访问静态资源
1.版本信息
spring boot : 2.1.8
2.目录结构
3.问题描述
在springboot项目搭建好以后,访问HTML页面时发现没有任何的样式。
4.页面路径
首先修改HTML页面对静态资源文件的访问路径。
(1)在HTML的头部添加thymeleaf的标记
<html lang="en" xmlns:th="http://www.thymeleaf.org">
(2)修改网页文档中的对静态资源的引用,语法规则如下:
命令格式:
th:href="@{/static/.....}"
命令用法:
<link rel="stylesheet" th:href="@{/static/vendor/bootstrap/css/bootstrap.min.css}">
解释说明:
1.springboot2.0之后的静态资源文件需要添加/static/,在IDEA中测试路径写法是否正确是按住Ctrl键并用鼠标左键点击,若能跳转到资源则说明路径正确。
2.th:href 替换的是href属性,相对应的还有src,可以使用th:src=“@{/static/....}”进行替换。
5.扩展MVC
springboot的优点在于有各种自动配置,在这里我们需要对springMVC进行扩展配置则需要继承WebMvcConfigurationSupport,这是2.0以后修改的地方,具体的做法步骤如下。
(1)创建扩展
首先在src下新建config目录,并创建SpringMVC配置扩展类,并继承WebMvcConfigurationSupport类。
(2)重写方法
重写方法addResourceHandlers,将其中的请求映射路径做修改。
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
// 将url为 /static/** 的请求映射到 /static/ 路径下进行查找
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
6.启动测试
访问项目查看页面是否正确显示,到这里应该是能够解决的。