파게로그
[Spring MVC] 정적인 리소스 서비스하기 본문
Spring은 기본적으로 JSP 등 동적인 페이지와는 달리 HTML, CS, JavaScript 등 정적인 리소스에 대한 접근을 막는다. 정적인 리소스를 서비스해야 한다면 dispatcher-servlet.xml에 <mvc:resources>를 추가함으로써 접근을 허용할 수 있다.
dispatcher-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http:www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<bean name="/index" class="com.ddoongi.web.controller.IndexController" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<mvc:resources location="/resource/" mapping="/resource/**"></mvc:resources>
</beans>
mvc 사용을 위해 네임스페이스와 스키마를 추가해주고, <mvc:resources>를 통해 접근을 허용해준다. 여기서 '**'은 하위 폴더 아래의 파일까지 모두 포함함을 의미한다.
<mvc:resources location="/images/" mapping="/images/**" />
<mvc:resources location="/js/" mapping="/js/**" />
<mvc:resources location="/css/" mapping="/css/**" />
이런 걸 모두 모아서 resource에 넣고 아래와 같이 사용할 수 있다.
<mvc:resources location="/resource/ mapping="/resource/**" />
그런데 이렇게 하면 HTML 파일의 <img>의 src 속성에 모두 "/resource/images/logo.png"와 같이, resource를 명시해주어야 하는 불편함이 있다.
sol)
<mvc:resources location="/static/" mapping="/**" />
또는
<mvc:resources location="/public/" mapping="/**" />
뒤지는 곳은 static 폴더이고.. (이게 루트가 됨)
src 같이 해당 파일을 이용하는 곳에서는 static을 생략한다.
즉 아래의 URL은 404 에러를 발생시킨다.
localhost:8080/static/images/logo.png
따라서 아래와 같이 접근할 수 있도록 해야한다.
localhost:8080/images/logo.png
'콤퓨타 왕기초 > Spring' 카테고리의 다른 글
[Spring MVC] 데이터 서비스 클래스 (0) | 2021.04.29 |
---|---|
[Spring MVC] Tiles를 통한 페이지 모듈 분리(Retired Framework) (0) | 2021.04.29 |
[Spring MVC] ViewResolver (0) | 2021.04.26 |
[Spring MVC] Spring Dispatcher를 Front Controller로 설정하기 (0) | 2021.04.26 |
[Spring MVC] Spring Tools 4 개발 환경 세팅 (0) | 2021.04.26 |