Tomcat서버 구동시 jsp에서 외부 css, js 파일을 인식하지 못하는 현상

728x90

jsp, servlet으로 todo list 웹 프로젝트를 진행하는 중에 jsp 에서 css, js 파일을 분리하였다. 
하지만 분리하는 순간부터 Tomcat 서버에서는 css와 js가 적용되지 않았다. 

크롬의 개발자 도구에서는 아래와 같이  net::ERR_ABORTED 404 오류가 발생했다.

https://okky.kr/article/673254 

 

OKKY | Failed to load resource: jsp에서 css파일을 로드하지 못합니다.

jsp servlet 이용해서 웹 프로젝트를 진행하고있습니다.  main.jsp에  link 태그를 이용해서 외부 css를 이용하려고 했는데 자꾸 저런 오류가 발생합니다. 일반적으로 경로를 잘못 설정하는 경우가 많기때문에 많은 구글링을 통해서  1. css파일 경로앞에  ${pageContext.request.contextPath} 혹

okky.kr

개발자 커뮤니티 사이트에 이렇게 질문도 올려가며(결국 답변을 받지 못했다 ㅠㅠ) 일주일가량 삽질을 한 결과.... 

처음에는 문제의 원인이 무엇인지 파악하기가 힘들어서 광범위하게 해결을 하려다보니 이거했다 저거했다(정확한 표현은 어렵지만 정확한 방향을 몰랐다는게 맞는 표현인 것 같다). 선배의 조언덕에 어쨋거나 404 오류는 '경로문제'라는 관점에서 접근을 시도했다. 

경로로 찾는와중에 servlet-context.xml 이나 web.xml, server.xml 에서 어떤 작업을 해보라는 조언들이 많았다. 
그중에 나는 web.xml에서 servlet-mapping을 해주면서 문제를 해결했다. 

Tomcat이 설치되어있는 경로에서 conf폴더에 있는 web.xml을 메모장으로 연다 (나의 경우에는 Library/Tomcat/conf)
그리고 <servlet-mapping> 부분을 수정한다.

처음에는 아래처럼  default servlet에 '/' url-pattern만 등록되어있었다.여기에 추가적으로 js, css 등등의 지정자도 추가해준다.

변경전
변경후

이 url-pattern 들을 추가하고 저장한 뒤, Tomcat 서버를 실행했더니!! 정상적으로 css와 js 를 인식하여 적용되었다!

무려 일주일이나 걸린 삽질이었다. 아마 조금의 힌트도 없이 혼자 끙끙 앓았다면 더 오랜 시간이 걸리지 않았을까 ...? 

728x90