반응형
기본적으로 Springboot 프로젝트를 만들면 정적자원들 접근 위치는 resources/static에 위치를 하게 된다.
하지만 resources/views로 위치를 바꿔서 파일들을 관리하고 싶은 경우에는 어떻게 해야 할까?
<문제점>
- application.properties 에서 prefix와 suffix를 설정을 해주었지만 static 폴더 안에서 다른 폴더로 접근할 때 적용이 되었다.
- 그렇다고 static/하위폴더 구조로 쓰기는 싫었다.
<해결방법>
※ 모두 다 resources/m/ 이라는 곳에 있는 정적 자원을 읽어 올 수 있는 방법이다.
1. application.properties에 spring.resources.static-location 값을 지정 해준다.
spring.resources.static-locations=classpath:/m/,classpath:/META-INF/resources/,classpath:/resources/, classpath:/static/, classpath:/public/
2. WebMvcConfigurer을 사용해 설정을 해준다.
// <WebConfig.java>
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) { // 기본 resourceHandler 유지하면서 추가
registry.addResourceHandler("/m/**")
.addResourceLocations("classpath:/m/") // '/'으로 끝나도록
.setCachePeriod(20);
}
}
3. thymeleaf를 추가해준다. (제일 편함)
--Gradle--
compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version: '2.3.1.RELEASE'
--Maven--
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
반응형
최근댓글