Gidhub BE Developer

Static Resource 경로 다루기

2019-03-24
goodGid

  • Resource 요청과 관련해선 ResourceHttpRequestHandler가 처리한다.

  • 기본 Resource Path 이외의 추가적인 Resource Path를 관리하기 위해선 WebMvcConfigurer의 addResourceHandlers로 커스터마이징한다.

package com.example.demo.config;

import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configurable
/*
@EnableWebMvc // SpringBoot가 제공하는 모든 MVC기능은 사라지고 WebMVC 기능을 여기서 설정해줘야한다.
그런데 너무나 귀찮은 부분이기 때문에 @EnableWebMvc 선언을 하지 않고
"implements WebMvcConfigurer"를 통해 필요한 Method를 Override한다.
 */

public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/m/**")
                .addResourceLocations("classpath:/m/")
                .setCachePeriod(20);
    }
}
  • 주의
    • classpath:/m (x)
      classpath:/m/ (o)
    • 즉 addResourceLocations(“classpath:/m”)으로 하면 안된다.
  • 기본 리소스 위치
    • classpath:/static
    • classpath:/public
    • classpath:/resources/
    • classpath:/META-INF/resources
    • ex) “/hello.html”로 요청하면 /static/hello.html 리소스를 반환한다.

    • spring.mvc.static-path-pattern: 맵핑 설정 변경 가능 (비추천)
    • spring.mvc.static-locations: 리소스 찾을 위치 변경 가능 (비추천)

디렉토리 구조


참고


Comments

Content