1.问题描述
使用Spring Boot +thymeleaf +IDEA开发一个新项目,启动后首页css\js等全部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、图片加载正常。
至于配置的作用详解,日后再谈。