[Spring Boot] 정적 리소스 지원

Junseo Kim·2020년 2월 9일
2

정적 리소스

우리가 서버에서 어떤 작업을 처리해서 요청이 들어왔을 때, 뷰를 만들어 내는 것이 아니라, 웹 브라우저나 클라이언트에서 요청이 들어왔을 때, 그것에 대한 리소스가 이미 만들어져있고, 만들어져 있는 리소스를 그냥 보내주면 되는 것이다.

기본적으로 아래 위치에 있는 리소스들은 /**요청에 mapping되어 제공된다.

classpath:/static
classpath:/public
classpath:/resources/
classpath:/META-INF/resources

예시

resources의 static 하위에 hello.html을 만들어준다.

스크린샷 2020-02-09 오후 11.46.15.png

실행 후 localhost:8080/hello.html로 요청하면 응답이 제대로 오는 것을 볼 수 있다.

스크린샷 2020-02-09 오후 11.48.02.png

기본적으로 url 패턴은 root부터로 설정되어 있다. 만약 mapping을 변경하고 싶다면, application.properties에서 spring.mvc.static-path-pattern=값을 변경해주면 된다.

스크린샷 2020-02-09 오후 11.53.56.png

스크린샷 2020-02-09 오후 11.54.59.png

기존에 제공하는 resource handler 뿐만 아니라 새로 resource handler를 추가해 줄 수도 있다.

src - main - java 에 config 패키지를 만들어 WebConfig 클래스를 만들어 WebMvcConfigurer를 implement한다.

그 후, addResourceHandlers 메서드를 override한다.

스크린샷 2020-02-10 오전 12.02.43.png

새로 resource handler를 추가해준다.

스크린샷 2020-02-10 오전 12.03.51.png

m이라는 요청으로 올 경우를 resource handler로 추가해주는 것이다.
classpath 아래에 m 디렉토리를 만들어주고 hello.html을 만들어준다.

스크린샷 2020-02-10 오전 12.05.29.png

스크린샷 2020-02-10 오전 12.05.53.png

이렇게 새로 추가한 resource handler는 캐싱 전략을 따로 해줘야한다.

0개의 댓글