정적 자원 매핑 -  태그


maven으로 프로젝트를 진행할때 정적 자원/src/main/webapp/resources/ 아래에 위치시킨다. .jsp와 같은 뷰 파일은 /src/main/webapp/WEB-INF/views/ 아래에 위치하는데, 뷰에서 정적 자원을 가져오기 위해 경로는 어떤 식으로 작성해야할까?

 

/src/main/webapp/WEB-INF/views/home.jsp 뷰가 있을 때, 해당 뷰에서 정적 자원을 가져오고 싶다면 아래처럼 작성할 수 있다.

<!-- /WEB-INF/views/home.jsp -->
<html>
<head>

<link rel="stylesheet" href="/resources/bower_components/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="/resources/bower_components/font-awesome/css/font-awesome.min.css">

<link rel="stylesheet" href="/resources/dist/css/AdminTemplate.min.css">

</head>
</html

 

프로젝트를 진행하다보면 불러오고싶은 정적 자원이 십 단위가 금방 넘어가는데 매번 앞에 /resources를 붙여줘야하니 뭔가 쓸데없이 느껴진다. 이 때 <mvc:resources> 태그를 사용하여 정적 자원 매핑을 설정해줄 수 있다.

<!-- 정적 자원 매핑 -->
<mvc:resources mapping="/resources/**" location="/resources/"/>
<mvc:resources mapping="/bower_components/**" location="/resources/bower_components"/>
<mvc:resources mapping="/dist/**" location="/resources/dist/"/>
<mvc:resources mapping="/plugin/**" location="/resources/plugin/"/>

 

쉽게, 경로에 대한 alias같은 것 /resources/bower_components//bower_components라 사용하겠다는 의미이다.