티스토리 뷰
Spring Web static resources
오늘은 Spring Web에서 지원해주는
정적 리소스 경로 맵핑에 대해 공유해보겠습니다.
정적 리소스는 동적으로 만들어지지 않는 리소스 ex) 사진, javascript 등을 말합니다.
기본 리소스 위치
- classpath:/static
- classpath:/public
- classpath:/resources
- classpath:/META-INF/resources
html 생성
프로젝트 resources → static → hello.html
-
hello.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello World</title> </head> <body> Hello Static Resource 오호호 </body> </html>
서버 실행 후 브라우저에서 확인해보겠습니다.
개발자 도구 (F12)를 열어서 Network 탭을 열어둔 후 다시 새로고침을 해보면
응답 코드가 200이 아닌 304로 내려온다.
이유는 브라우저가 가지고 있는 마지막 수정시간과 서버에서의 수정시간을 비교해서
변경내역이 없는 경우 304로 캐시 된 데이터를 내리게 된다.
ResourceHttpReqeustHandler
가 처리합니다.
custom 경로
-
resoruces → application.properties
spring.mvc.static-path-pattern=/static/**
위와 같이 설정을 하게 되면 아까와 같이
http://localhost:8080/hello.html
이 아닌
http://localhost:8080/static/hello.html
로 요청해야 정상적으로 나오게 됩니다.
굳이 변경할 필요가 있을까 싶지만... 알아만 두겠습니다.
spring.mvc.static-location : 리소스 찾을 위치 변경
하지만 위에 이미 지정되어있는 경로들도 못쓰게 되어서 아래의 방법을 추천합니다.
-
WebConfig.java
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/alxndr/**") .addResourceLocations("classpath:/alxndr/") .setCachePeriod(20); // 캐싱 전략을 따로 해줘야함. } }
위 코드와 같이 기존 경로들도 유지하면서 원하는 경로를 추가해줄 수 있습니다.
감사합니다.
'Dev > Spring' 카테고리의 다른 글
Spring @EventListner 사용해보기 (0) | 2020.11.18 |
---|---|
Spring boot 에러처리하기! (feat. @ExceptionHandler & @ControllerAdvice) (0) | 2020.11.12 |
Spring boot 프로젝트 만들기 (0) | 2020.10.21 |
Spring에서 RestTemplate로 API 호출하기 (0) | 2020.09.01 |
Spring boot @Formula사용해서 Count Query 하기 (2) | 2020.07.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java11
- 웹서비스
- Python
- Security
- booleanExpression
- 스프링부트
- boot
- spring web
- 유사결과
- JPA
- Spring
- QueryDSL
- springboot
- mapstruct
- ResourceHttpReqeustHandler
- like절
- springsecurity
- 스프링
- 스프링시큐리티
- API
- Java
- paawordencoder
- 자바
- ControllerAdvice
- 스프링부트 시작하기
- 개발
- @formula
- ubuntu
- FastAPI
- howtoinstallnginx
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함