정적 리소스?

  • 클라이언트로부터 요청이 들어왔을 때, 요청에 대한 리소스가 이미 만들어져 있어 그대로 응답하는 경우를 뜻함
  • 정적 리소스 맵핑은 "/**"
  • 기본 리소스 위치
    • classpath:/static
    • classpath:/public
    • classpath:/resources/
    • classpath:/META-INF/resources
    • 예) "/hello.html" => /static/hello.html
    • spring.mvc.static-path-pattern: 맵핑 설정 변경 가능
    • spring.mvc.static-locations: 리소스 찾을 위치 변경 가능
  • Last-Modified 헤더를 보고 304 응답을 보냄
  • 정적 리소스를 웹 브라우저 캐시와 상관없이 캐싱할 수 있다

예제

@Configuration
public class Webconfig extends WebMvcConfigurerAdapter {
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/m/**")
      .addResourceLocations("classpath:/m/")
      .setCachePeriod(20);
    }
}