본문 바로가기

Programming/JSP

[jsp] css, js파일을 제대로 로딩하지 못할 경우엔 동적으로 path를 잡아주세요.

지금 진행중인 프로젝트는 spring3 프레임워크로, spring mvc로 controller mapping을 하고

tiles2로 view layout을 잡도록 진행중에 있습니다.

그리고 javascript 공통코드는 따로 js파일을 만들어서 작업하고

공통으로 적용해야하는 CSS 역시 따로 css파일을 만들어서 작업을 진행합니다.


그리고 작업의 편의를 위해서 tiles2에서 template으로 쓰이는 jsp파일(어떤 view 파일이든)에

head에 공통 js, css파일들을 박아버리죠.


이러한 환경에서 처음 template 파일이 호출되는 시점에는 js, css파일을 못찾는 경우가 발생하더군요.

경우의 수가 맞는지는 모르겠으나 경험적으로는

메뉴카테고리 등을 클릭하여 tiles view에 definition에 기술된 다른 파일이 호출되어야만

js, css파일들이 로딩되더군요.


따라서 검색을 좀 해보니

resource들을 로드하는 코드를 정적으로 박아버리지말고

동적으로 path를 찾아서 로드가 되도록 하라고 하네요.


<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/test.css">

<script type="text/javascript" src="${pageContext.request.contextPath}/js/test.js"></script>


위처럼 말이죠.


아래 링크는 stack overflow에 위의 문제를 다룬 Q&A입니다.

http://stackoverflow.com/questions/10340392/javascript-with-spring-mvc-doesnt-work