SpringBoot的静态资源文件访问问题

一、采用默认的文件存放位置:

Spring Boot 对静态资源映射提供了默认配置, 默认将 /** 所有访问映射到以下目录:

classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources

在如上路径的文件可以被直接访问到:
例如:访问资源:favicon.ico
SpringBoot的静态资源文件访问问题_第1张图片

通过url:http://localhost:8081/backend/favicon.ico访问静态资源:
SpringBoot的静态资源文件访问问题_第2张图片
可以成功访问

一、采用自定义的文件存放位置:

将favicon.ico资源放在resources包下的front文件夹下,
SpringBoot的静态资源文件访问问题_第3张图片
此刻通过URL直接访问是访问不到的,因为需要访问的资源不在系统默认的文件夹下,
这个时候就需要自定义访问路径。

自定义静态资源访问路径有两种方式:

第一种通过配置类的方式:(不推荐,因为麻烦)

@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    /**
     * 设置静态资源映射
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        log.info("开始进行资源映射");
//        设置前端静态资源映射
        registry.addResourceHandler("/front/**")
                .addResourceLocations("classpath:/front/");
    }

}

再次访问:http://localhost:8081/front/favicon.ico
成功访问到静态资源

第二种通过配置文件配置静态资源访问路径:(推荐:简便)

    resources:
      static-locations: classpath:/front/
    static-path-pattern: /**

你可能感兴趣的:(面试题合集,Java,spring,boot,后端,java)