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 한다.
'개발 > SpringBoot' 카테고리의 다른 글
SpringBoot RestTemplate ResponseType에 Generic 설정 (0) | 2022.02.21 |
---|---|
SpringBoot WebConfig @EnableWebMvc, WebMvcConfigurer (0) | 2022.01.19 |
SpringBoot EhCache JavaConfig설정 (0) | 2022.01.11 |
addViewControllers()로 불필요 Controller 로직 제거 (0) | 2022.01.10 |
SpringBoot Multi Servlet 추가 MVC설정 분리 테스트 (0) | 2022.01.04 |
댓글