본문 바로가기
개발/SpringBoot

SpringBoot static resource 설정

by 궁즉변 변즉통 통즉구 2022. 1. 19.
반응형

SpringBoot에서 정적 리소스(html, js, css, image 등) 설정 방법

 

기본 정적 리소스 경로는 아래와 같다

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

테스트를 위해 main/java/resources 경로에 static/html 폴더를 생성하고 html 파일을 하나 작성하고 http://localhost:8080/html/static.html 호출을 하면 간단히 확인 가능하다

 

정적 리소스 URL pattern 변경

정적리소스는 기본적으로 루트(/**)로 매핑이 되는데 변경을 할 경우 application.yml에서 다음과 같이 static-path-pattern을 설정한다. /static-url/** 으로 변경하고 http://localhost:8080/static-url/html/static.html로 호출해서 확인한다.

spring:
  mvc:
   static-path-pattern: /static-url/**

 

정적 리소스 파일 위치 변경

기본 정적 리소스 경로를 변경할 경우  application.yml에서 spring.resources.static-locations 을 설정하고, http://localhost:8080/static-url/static-loc.html 로 호출한다(위의 static-path-pattern 테스트까지 포함됐음)

위와 같이 Location을 변경할 경우 기본 경로(classpath:/static/, classpath:/public/ 등)는 모두 동작하지 않는다

 

WebConfig 설정

기본 경로는 유지하고 추가를 하고 싶은 경우 WebConfig에서 addResourceHandlers()를 Ovrride해준다

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
     registry.addResourceHandler("/test/**")
             .addResourceLocations("classpath:/static-loc/");
    }
}

위와 같이 설정하고 http://localhost:8080/test/static-loc.html 테스트 해보면 동작하고, 기본 매핑들도 동작한다.

위에서 addResourceHandler()에 패턴을 디폴트인 루트(/**)로 주면 마찬가지로 기본 리소스 경로를 Ovrride 한다.

반응형

댓글