SpringBoot的yml(properties、yaml)文件配置了禁用资源映射

有的项目可能为了要使用@ControllerAdvice与@ExceptionHandler来捕获controller层的异常,可能会在配置文件中配置了如下内容,从而禁用了资源映射:

spring:
  mvc:
    throw-exception-if-no-handler-found: true # 告诉 SpringBoot 当出现 404 错误时, 直接抛出异常
  resources:
    add-mappings: false # 告诉 SpringBoot 不要为我们工程中的资源文件建立映射

改为:

spring: 
  mvc: 
    throw-exception-if-no-handler-found: true
    static-path-pattern: /statics/**

或者添加一个配置类(前提是你的静态文件资源在resources/static目录下,如果不是,修改为对应的位置):

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 访问http://localhost:8080/static/*** 都会跳转到classpath:/static/下去找,即resources/static/
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
}

然后可以在controller中添加一个映射,跳转到默认首页:

@Controller
public class AdminController {
    /**
     * 设置web主页面
     * @return
     */
    @GetMapping("/")
    public String index(){
        return "/static/index.html";
    }
}
Logo

前往低代码交流专区

更多推荐