티스토리 뷰
정적 리소스 지원
정적 리소스 맵핑 "/**". 루트로 맵핑된다.
기본 리소스 위치
classpath:/static
classpath:/public
classpath:/resources/
classpath:/META-INF/resources
예) "/hello.html" 접근시 /static/hello.html 응답
spring.mvc.static-path-pattern: 맵핑 설정 변경 가능
application.yml에서
spring.mvc.static-path-pattern: /static/**
으로 설정 변경시localhost:8080/hello.html => localhost:8080/static/hello.html로 접근
spring.mvc.static-locations: 리소스 찾을 위치 변경 가능
기존의 기본 리소스 위치를 사용하지 않고 변경한 위치만 사용하므로 권장하지 않는 방법이다.
이방법 보다는 WebMvcConfigurer를 구현상속받아서 addResourceHandlers로 커스터마이징 하는 방법이 더 좋다. 기본 리소스 위치를 사용하면서 추가로 필요한 리소스위치만 정의해서 사용할 수 있다.
localhost:8080/m/hello.html 접근시 resources/m/hello.html 리턴
여기서 주의할점은 캐시 설정을 따로 해야 한다는 것이다. 기본 리소스들은 기존의 캐싱 전략이 적용되어 있다.
커밋로그
public class WebConfig implements WebMvcConfigurer {
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/m/**")
.addResourceLocations("classpath:/m/")
.setCachePeriod(20);
}
}기본 리소스 위치에 있는 리소스들은 ResourceHttpRequestHandler가 처리하는데, 브라우저에서 304 status을 내려주는 경우가 있다.
html 파일이 변경되는 순간 파일에 Last-Modified 라는 최종 변경시간이 기록되는데,
브라우저에서는 처음에 html파일을 요청하고 200 status를 받으면 해당 시간을 If-Modified-Since에 기록해 놓는다.
그리고 브라우저에서 다시 html요청을 하고 응답을 받을때, resopnse 헤더에 넘어오는 Last-Modified 시간이 request 헤더에 보낸 If-Modified-Since와 같다면, html 파일의 변경이 없었다는 의미이므로 다시 리소스를 받아오지 않고 304 status와 캐시된 파일을 내려준다.
하지만 html이 변경됐을 경우 response 헤더에 넘어오는 Last-Modified 시간이 request 헤더에 넘긴 If-Modified-Since 시간 이후이므로 새로 리소스를 받아서 200 status를 반환한다.
'ICT Eng > Spring' 카테고리의 다른 글
[Spring Boot] 템플릿 엔진, HtmlUnit, ExceptionHandler (0) | 2019.01.24 |
---|---|
[Spring Boot] webjars, index 페이지, 파비콘 활용 (2) | 2019.01.17 |
[Spring Boot] ViewResolver (0) | 2019.01.11 |
[Spring boot] HttpMessageConverters (0) | 2019.01.10 |
[Spring Boot] 스프링 웹 MVC (0) | 2019.01.10 |
- Total
- Today
- Yesterday
- springboot
- Java
- 젠킨스
- RBT
- 인프런
- IT융합인력양성사업단
- Raspberry Pi
- JPA
- Spring
- Recursion
- 시간복잡도
- vuex
- Wisoft
- 레드블랙트리
- 라즈베리파이
- ORM
- 스프링부트
- 한밭대학교
- 알고리즘
- vuejs
- AWS
- Spring Boot
- 한밭이글스
- Algorithm
- Vue.js
- 무선통신소프트웨어연구실
- 자바
- 정렬
- github
- 순환
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |