프로젝트 외부에 있는 upload 폴더에 저장되있는 리소스들을 JSP 에 가져와 쓰다보면 경로를 인식 못하는 경우가 있다. 이럴 때 WebConfig 에 설정을 추가해주면 된다 !!
<!--게시물컨섹션-->
<section id="tab-content">
<!-- 생략 ... -->
<!--아이템들-->
<c:forEach var="image" items="${user.images}">
<div class="img-box">
<a href=""> <img src="${image.postImageUrl}" /></a>
<div class="comment">
<a href="#" class=""> <i class="fas fa-heart"></i><span>0</span>
</a>
</div>
</div>
</c:forEach>
<!-- 생략 ... -->
</section>
WebMvcConfigurer
인터페이스를 구체화한 WebConfig
클래스를 만든다.application.yml
파일에 외부업로드 파일경로를 가져와서 uploadFolder
에 저장한다.applicadtion.yml
파일에 file.path
옵션에 upload 폴더 경로를 지정해뒀다.addResourceLocations("경로")
: JSP 파일에서 지정한 경로가 나오면 낚아채서 소유권을 가진다addResourceLocations("경로")
: 경로를 실행 시킨다.setCachePeriod(second)
: 캐싱 시간(초)을 지정한다.resourceChain(boolean)
: true 가 되면 활성화 된다.@Configuration
public class WebMvcConfig implements WebMvcConfigurer { // web 설정파일
@Value("${file.path}")
private String uploadFolder;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
WebMvcConfigurer.super.addResourceHandlers(registry);
registry.addResourceHandler("/upload/**")
.addResourceLocations("file:///"+uploadFolder)
.setCachePeriod(60*10*6)
.resourceChain(true)
.addResolver(new PathResourceResolver());
}
}
필요할 때마다 복사해서 쓰는게 좋을 꺼 같다 !!!
addResourceLocations
,addResourceLocations
부분만 수정해주면 된다 !!