在做一个关于基于IDEA+SpringBoot+Mave+Thymeleaf的系统实现实验时候遇到了这个问题一直无法解决 后来看到一篇博客终于解决了。
springboot项目在自动生成的时候会有两个文件夹,一个是static,一个是templates,如果我们使用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
来进行页面的跳转,默认情况下我们是将html页面放置在templates的文件夹下,css、js、img放置在static文件夹下。
1、先检查文件存放位置是否正确
2、在放置java文件的目录下创建文件InterceptorConfig.java
springboot在2.+时,我们需要配置一个静态资源映射(非常关键),同时此操作可以进行拦截器的扩展,具体不在这里说明,注意要继承WebMvcConfigurationSupport !
代码如下
package org.example.demo4;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@SpringBootConfiguration
public class InterceptorConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
// 静态资源映射
registry.addResourceHandler("/").addResourceLocations("/**");
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
}
}
3、不要在配置文件中配置默认的静态文件路径
有的话删除,application.properties文件大致如下
4、引入CSS的方式
<link rel="stylesheet" th:href="@{/rehisterstyle.css}">
不要加/static/前缀
到这这个问题基本就解决了。