Spring Boot中CSS加载失败,提示No mapping for GET /css/style.css求助
解决Spring Boot中CSS文件无法加载(No mapping for GET /css/style.css)的问题
核心问题分析
你遇到的问题主要是**@EnableWebMvc注解禁用了Spring Boot的静态资源自动配置**,同时静态资源的存放路径或资源映射配置不匹配导致的。
分步解决方案
1. 确认静态文件存放位置
确保style.css放在Spring Boot默认的静态资源目录下:
src/main/resources/static/css/style.css
Spring Boot默认会自动映射以下目录的静态资源:
classpath:/static/classpath:/public/classpath:/resources/classpath:/META-INF/resources/
2. 移除@EnableWebMvc注解
你的配置类中添加的@EnableWebMvc会完全接管Spring MVC的配置,覆盖Spring Boot默认的静态资源映射规则。只保留@Configuration和实现WebMvcConfigurer接口即可:
@SpringBootApplication public class AtiApplication { public static void main(String[] args) { SpringApplication.run(AtiApplication.class, args); } @Configuration static class MyConfig implements WebMvcConfigurer{ @Autowired AtiServiceImpl atiservise; @Override public void addFormatters(FormatterRegistry registry) { registry.addFormatter(new RegulatoryActFormatter(atiservise)); registry.addFormatter(new RegulatoryFormFormatter(atiservise)); } } }
3. (可选)自定义资源映射(如需)
如果确实需要自定义静态资源路径,在WebMvcConfigurer的实现类中添加正确的资源处理器,确保请求路径和资源目录匹配:
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 映射/css/**请求到classpath:/static/css/目录 registry.addResourceHandler("/css/**") .addResourceLocations("classpath:/static/css/"); }
注意:添加这个配置时不要加@EnableWebMvc,否则Spring Boot的自动配置会失效。
4. 验证Thymeleaf路径
你的HTML中使用th:href="@{/css/style.css}"是正确的Thymeleaf写法,只要静态资源路径配置正确,这个引用就能正常生效。
内容的提问来源于stack exchange,提问作者Natasha
相关产品推荐
相关产品推荐

