정적 리소스 지원
spring boot는 웹브라우저에서 요청이 들어왔을 때 이미 만들어져 있는 리소스를 지원하는 기능이다.
spring boot 는 다음과 같은 위치에 있는 정적 리소스들을 제공해줄 수 있다.
- classpath:/static
- classpath:/public
- classpath:/resources/
- classpath:/META-INF/resources
정적 리소스 맵핑 은 다음과 같으며 /**
해당 경로를 얼마든지 커스텀 할 수 있다.
-> apllication.properites 파일에 다음과 같이 설정하면된다.
spring.mvc.static-path-pattern
spring.mvc.static-path-pattern=/static/**
또한 요청에 대한 정적 리소스를 찾을 디렉터리도 변경이 가능한데 다음과 같다.
spring.web.resources.static-locations
spring.web.resources.static-locations=classpath:/static-location/
하지만 application.properites를 통해 정적 리소스의 locations 을 바꾸는 행위는 스프링 부트에 기본으로 등록되어있는
정적리소스의 locations 들을 사용하지 못함으로 주의해야 한다.
위에 있는 값들을 오버 라이딩하는 행위임으로!
따라서 정적 리소스의 위치를 추가하고 싶다면 다음과 같이 추가해보자.(1부 에서 소개 했던 방법을 이용하여)
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/m/**")
.addResourceLocations("classpath:/m/")
.setCachePeriod(30);
}
}
해당 코드를 추가하게 된다면
http:/localhost:8080/m/~~ 요청이 들어온다면
~~ 에 해당하는 정적리소스 파일을 classpath:/m/ 밑에 있는 리소스 파일을 찾게 된다.
디렉토리 구조 | 요청 |
---|---|
해당 방법으로 location을 추가한다면 기본 전략에 내가 원하는 location과 handler를 안전하게 추가할 수 있음으로 이 방법을 권장한다.
'Spring > boot' 카테고리의 다른 글
[Spring-boot] ExceptionHandler (0) | 2021.01.22 |
---|---|
[Spring-boot] Thymeleaf (0) | 2021.01.21 |
[Spring-boot] 웹MVC (1부) : 소개 , ViewResolver (0) | 2021.01.19 |
[Spring-boot] Test (0) | 2021.01.18 |
[Spring-boot] Logging (0) | 2021.01.16 |