Spring Boot +thymeleaf +IDEA,静态资源CSSJSimg 404 错误,No mapping for GET 静态资源的问题。

1.问题描述

使用Spring Boot +thymeleaf +IDEA开发一个新项目,启动后首页cssjs等全部404,起初分析是路径错误,但是在IDEA中使用ctrl+鼠标左键可以找到,经过各种百度、各种尝试。IDEA控制台出现警告No mapping for GET ‘XXX’,对于一个开发人而言处理一个问题时,错误出现的时候也恰恰是希望出现的时候。

解决:

我放弃了使用.properties配置mvc拦截器,改为使用配置类配置,问题解决。

我的项目  目录

 1.在controller下创建文件夹config并创建

MvcConfigController配置类,类内容如下:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration
public class MvcConfigController extends WebMvcConfigurationSupport {

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/" };

@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!registry.hasMappingForPattern("/webjars/**")) {
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
}
if (!registry.hasMappingForPattern("/**")) {
registry.addResourceHandler("/**").addResourceLocations(
CLASSPATH_RESOURCE_LOCATIONS);
}
}
}

重启项目,问题解决。

 JS、css、图片加载正常。

至于配置的作用详解,日后再谈。

原文地址:https://www.cnblogs.com/XH09/p/14291635.html