728x90
반응형
정적 리소스 지원
Web Browser
나 Client
에서 요청이 들어왔을 때 이미 만들어져 있는 리소스를 그대로 보내주는것
특징
- 정적 리소스 매핑 :
/**
- 기본 리소스 위치
classpath:/static
classpath:/public
classpath:/resources/
classpath:/META-INF/resources
spring.mvc.static-path-pattern
: 매핑 설정 지정spring.mvc.static-locations
: 리소스 찾을 위치 지정
- Last-Modified Header를 보고 304 응답을 보낸다.
ResourceHttpRequestHandler
가 처리한다.WebMvcConfigurer
의addResourceHandlers
로 커스터마이징 할 수 있다.
커스터마이징 예시
// /config/WebConfig.java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/m/**")
.addResourceLocations("classpath:/m/") // 뒤에 '/' 꼭 붙여아 한다.
.setCachePeriod(20);
}
}
<!-- /resources/m/hello.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>Page Title</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='main.css'>
<script src='main.js'></script>
</head>
<body>
Hello Mobile Static Resource
</body>
</html>
결과
WebJAR
Client
에서 사용하는 Web Library
를 JAR 파일로 패키징한 것으로 의존성을 추가하여 사용할 수 있다.
특징
- JVM 기반의 웹 애플리케이션에서 클라이언트측 의존성을 손쉽게 관리할 수 있음
- JVM 기반 빌드툴을 사용하여 클라이언트측 의존성을 다운로드
- 사용하고 있는 클라이언트측 의존성을 파악할 수 있음
- 수동적인 종속성을 자동으로 해결하고 선택적으로 RequireJS를 통해 적재
- 메이븐 중앙저장소를 통해 배포된다.
- JSDELIVR 에서 제공하는 공개 CDN 사용이 가능하다.
예시
// pom.xml
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1</version>
</dependency>
<!-- resources/static/hello.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>Page Title</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='main.css'>
<script src='main.js'></script>
</head>
<body>
Hello Static Resource
<script src="/webjars/jquery/3.3.1/dist/jquery.min.js"></script>
<script>
$(function() {
alert("ready!");
});
</script>
</body>
</html>
결과
* WebJAR의 버전 명시를 생략하고 싶으면 pom.xml
에 webjars-locator-core
의존성을 추가한 후
/webjars/jquery/3.3.1/dist/jquery.min.js
를 /webjars/jquery/dist/jquery.min.js
로 변경하면 된다.
Index Page (Welcome Page)
Application Root: /
요청 시 보여주는 페이지
특징
- 기본 리소스 위치 내
index.html
을 찾아보고 있으면 제공 index.템플릿
찾아보고 있으면 제공- 둘 다 없으면 스프링 부트에서 제공하는 White Label Error Page
Favicon
Browser Title 옆 아이콘
특징
favicon.ico
라는 이름으로/resources/
내 어디에 위치해도 상관없다.
참고
- Favicon 만들기 : https://favicon.io/
- Favicon이 바뀌지 않을 때 : https://stackoverflow.com/questions/2208933/how-do-i-force-a-favicon-refresh
728x90
반응형
'Dev > Spring Boot' 카테고리의 다른 글
[스프링 부트 개념과 활용] 스프링 웹 MVC 8부 (0) | 2020.08.26 |
---|---|
[스프링 부트 개념과 활용] 스프링 웹 MVC 7부 (0) | 2020.08.26 |
[스프링 부트 개념과 활용] 스프링 웹 MVC 2, 3부 (0) | 2020.08.25 |
[스프링 부트 개념과 활용] 스프링 웹 MVC 1부 (0) | 2020.08.25 |
[스프링 부트 개념과 활용] Spring Boot Devtools (0) | 2020.08.25 |
댓글