https://github.com/JuyoungKimmy-Kim/spring-staticHandle.git
1. Static Resource?
html, css, image, javascript와 같이 컴파일이 필요 없는 파일
e.g. NAVER의 logo 검색 버튼 등은 홈페이지 개편등의 작업이 없는 한 거의 변하지 않는 정적자원(그 중 이미지)
스프링 부트에서 Web MVC 설정을 담당하는 WebMvcAutoConfiguration
클래스는 기본 설정으로 웹리소스 폴더에서 정적 자원들을 찾음
2. Image URL
Resource
폴더 하위에 Static
폴더를 만들고 Static
폴더 하위에 images
폴더를 만들고 이미지 추가
/src/main/resources
는 클래스패스와 같고 static
폴더는 WebMvc AutoConfiguration
클래스에서 인식하므로 브라우저에서는 추가한 images
경로만 있으면 됨
localhost:8080/images/이미지파일명
으로 접근 가능
3. HTML URL
/src/main/resources/static/
에 hello.html
파일을 새로 만듦
localhost:8080/hello.html
로 접근 가능
4. Static Resource 매핑 패턴 변경
정적 리소스 매핑 패턴을 루트가 아닌 다른 패턴으로 변경
application.properties - spring.mvc.static-path-pattern
5. Static Resource Location 변경
정적 리소스 location을
/static-test/
로 변경
src/main/resources
에 static-test
디렉토리를 생성하고 hello.html
위치
application.properties - spring.resources.static-locations
localhost://8080/hello.html
로 요청
6. Static Resource Handler Customizing
WebMvcConfigurer
를 구현하는 클래스에서addResourceHandlers
를override
하여 정적 리소스 핸들러 커스터마이징 가능
config package
생성 후 WebConfig class
를 만듦/m/** 패턴 요청 시 classpath의 /m/ 디렉토리에서 정적 리소스를 찾아 응답하도록 하는 설정
setCachePeriod를 통해 캐싱 전략을 설정
src/main/resources
에 m디렉토리를 만들고 hello.html위치
Reference
https://atoz-develop.tistory.com/entry/spring-boot-web-mvc-static-resources
https://jongminlee0.github.io/2020/03/13/resource/
스프링 부트로 배우는 자바 웹 개발 p94-99