참고 사이트

[스프링 부트/MVC] 정적 리소스(Static Resources) 기본 설정과 커스텀 방법

 

 

1. 개요

: 스프링 레거시에서 정적 리소스를 처리할 때의 방법이 있듯이 스프링 부트에서도 이러한 별개의 방식이 있다.

 

 

2. 세팅

Way-1. WebMvcConfigurer 인터페이스를 이용하여 객체를 만든다.(권장)

package edu.bit.ex.configuration;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration // Configuration 어노테이션 추가
public class WebConfiguration implements WebMvcConfigurer { // WebMvcConfigurer 인터페이스 구현(implements)
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("resources/**") // 핸들러 추가
				.addResourceLocations("classpath:/static/") // 클래스패스 설정시 끝에 꼭 / 넣어주자.
				.setCachePeriod(20); // 초단위
	}
}

 

Way-2. application.properties를 이용한다.

# spring boot static resources

# 스프링 부트에서는 resources/static 경로로 정적 리소스 파일을 넣어야한다.
spring.mvc.static-path-pattern = /static/**

# 여기서 classpath는 resources 폴더에 해당된다.
spring.web.resources.static-locations = classpath:/static/

# 매핑 허용 여부
spring.web.resources.add-mappings = true

 

 

3. 정적 리소스 파일 넣기

: 2번에서 언급 했듯이 정적 리소스 파일은 resources/static 폴더에 넣어야 한다.

 

 

4. jsp 파일에 경로 적용

4-1. 대상 파일 위치

 

4-2. 소스코드

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- jstl로 정적 리소스 경로 설정 -->

...

<!-- 3번에서 보다시피 img는 static 경로 안에 있다. -->
<span><img src="<c:url value="/img/myboard_logo.png"/>" width="112" height="28"></span>

 

4-3. 구현화면