초급의 끄적거림

[Spring] Static Resources 매핑 본문

Framework/Spring

[Spring] Static Resources 매핑

codingD 2020. 11. 18. 13:43

검색을 진행한 이유

  • 부트스트랩을 얹으려고 하는데 자꾸 정적 경로를 받아오지 못하고 아래와 같은 경고 발생
org.springframework.web.servlet.DispatcherServlet noHandlerFound
경고: No mapping found for HTTP request with URI  ~~~~~~~~

 

문제 상태 해결 전 세팅

  • *.js와 *.css 파일 처럼 정적인 리소스들을 처리하기 위해서 Resources 매핑이 필요함
  • 요청 설정이 시작 되는 web.xml에 다른 xml 문서들이 매핑 되어 있고 현재 프로젝트에는 'data-dispatcher-servlet.xml'을 매핑해둔 상태였음
<!-- web.xml -->
<servlet>
    <servlet-name>data-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring/data-dispatcher-servlet.xml</param-value>
    </init-param>
     <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>data-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
  

 

  • src/main/webapp/WEB-INF/spring/data-dispatcher-servlet.xml 에는 resources를 위한 경로를 추가해둔 상태
  <resources mapping="/resources/**" location="/resources/" />

 

 

수정방법

위 사진과 같은 경로이기 때문에 resources를 분리해서 적어줌

경로 :: /src/main/webapp/resources/~~~

<resources mapping="/resources/**" location="/resources/" />
<resources mapping="/assets/**" location="/resources/assets/" />
<resources mapping="/Doc/**" location="/resources/Doc/" />

 

결과적으로 /assets/main.css 라는 요청이 들어오면 /resources/assets/main.css로 연결 시켜준다.

즉, mapping으로 들어온 요청에 대해 location으로 매핑시켜줌.

 

참고 :: iwantadmin.tistory.com/133

Comments