(SpringBoot) 정적 콘텐츠(Static Content)

  • by

https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content

정적 콘텐츠: 환영 페이지와 같이 서버에서 작업하지 않고 웹 페이지(파일)를 그대로 웹 브라우저에 놓습니다.

MVC 및 템플릿 엔진: JSP, PHP는 템플릿 엔진입니다.

html을 서버에서 프로그래밍(변형)하고 동적으로 바꾸어 내립니다.

API: JSON 데이터를 클라이언트에 다운로드합니다.


링크 내용

Spring Boot는 기본적으로 /static 폴더에서 정적 콘텐츠를 가져옵니다.

다음 경로에 html 파일을 만들고 localhost:8080/hello-static.html에서 요청해 봅시다.

경로

resources/static/hello-static.html


요청 결과


요청 결과

정적 콘텐츠 이해


hello-static.html이 포함된 톰켓 서버가 먼저 요청을 받습니다.

이 요청을 봄에 전달합니다.

Spring에서 hello-static 컨트롤러를 찾습니다.

여기에 매핑된 컨트롤러가 없습니다.

그러면

resources에서 static/hello-static.html을 찾습니다.

존재에 이것을 반환합니다.

먼저 컨트롤러에서 hello-static.html을 찾았으므로 컨트롤러에 우선 순위가 있습니다.

우선순위를 확인하기 위해

hello-static 컨트롤러를 하나 만들어 봅시다.

@Controller
public class StaticController {

    @GetMapping("hello-static.html")
    public String test(Model model) {
        return "static";
    }
}

hello-staic.html에서 요청이 오면 templates/static.html을 반환합니다.

하지만 아래 사진을 보면 static/hello-static.html과 templates/static.html이 존재합니다.

hello-static.html에서 요청이 오면 우선 순위가 무엇인지 알 수 없습니다.

요청을 보냅니다.


무엇이 우선순위를 가지는가?

요청 결과


templates/static.html