Spring @MVC 직접 해보기 전에는 너무 어렵거나 너무 쉽게 여겨질 수 있다.
Spring @MVC 프로젝트를 생성하고 Web UI 프레임워크인 bootstrap 을 적용하니 css, js, img 파일들을 전부 못 가져온다.
원인:
DispatcherServlet 에 대한 /src/main/webapp/WEB-INF/web.xml 설정
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
확장자에 관계 없이 모든 요청에 대해 DispatcherServlet 이 통제 하려고 하면서 생기는 문제
해결:
CoC 방식 I
특정 확장자 또는 특정 폴더 아래의 파일들만 DispatcherServlet 이 통제하도록 /src/main/webapp/WEB-INF/web.xml 설정
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/*.do</url-pattern>
</servlet-mapping>
또는
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/Spring/</url-pattern>
</servlet-mapping>
CoC 방식 II
/src/main/webapp/resources 폴더 밑으로 css, js, img 등 DispatcherServlet 이 통제하지 않을 파일들을 옯겨 놓기
설정 방식 I - 강력 추천
Web Server 와 WAS 의 분리
ex) Apache - Tomcat / WebToB - JEUS
설정 방식 I - 강력 추천
/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 파일에
<mvc:default-servlet-handler />
설정 방식 I - 강력 추천
/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 파일에 폴더 등록
<resources mapping="/resources/**" location="/resources/" />
을 참고 하여 다른 폴더들도 리소스라고 등록해 준다.
<resources mapping="/resources/**" location="/resources/" />
<resources mapping="/css/**" location="/css/" />
<resources mapping="/js/**" location="/js/" />
<resources mapping="/img/**" location="/img/" />
설정 방식 II - 막장 방식
/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 파일에 폴더 등록
<resources mapping="/resources/**" location="/resources/" />
을 참고 하여 다른 폴더들도 리소스라고 등록해 준다.
<resources mapping="/resources/**" location="/resources/" />
<resources mapping="/css/**" location="/css/" />
<resources mapping="/js/**" location="/js/" />
<resources mapping="/**" location="/img/" />
/** 은 하나의 라인만 가능
출처: http://expert0226.tistory.com/242 [여름나라겨울이야기]
'Development > Spring Framework' 카테고리의 다른 글
[JAVA/Spring] The import javax.annotation.Resource cannot be resolved (0) | 2020.01.12 |
---|---|
[Spring4.1]log4j를 logback으로 변경하기 (0) | 2018.12.10 |
[Spring] 스프링, MySQL, MyBatis 연동 - 데이터 조회하기 (0) | 2018.12.10 |
[Spring] 스프링, MySQL, MyBatis 연동 (0) | 2018.12.07 |
[Spring] servlet context와 root context의 component-scan의 미묘한 차이점 (잘못하면 404 에러뜸) (0) | 2018.09.21 |