Frudy
6k
2019-04-03 13:02:30 작성 2019-04-03 13:18:13 수정됨
1
397

javascript 소스가 아예 안나오는건 무슨경우일까요?


알고싶었던 개념)


mvc-config.xml의

이게 어떻게 작동하는건지좀 알아볼려고 그랬습니다.


하나바꾸면 톰캣내렸다올리고 + 쿠키,캐시같은거 몽땅 삭제까지 한다음 테스트했으며,

그로인해 디버깅하는데 총합 3시간이 걸렸습니다.


개발환경)
sts툴의 Spring Web Maven에서 진행했습니다.

패키지경로)


참고자료 : https://www.mkyong.com/spring-mvc/spring-mvc-how-to-include-js-or-css-files-in-a-jsp-page/


성공 사례)


jsp페이지)

<script src="<c:url value="/hohoho/boardScript.js" />"></script>


mvc-config.xml)

<mvc:resources location="/upper/lower/javascript/" mapping="/hohoho/**"></mvc:resources>


이렇게 하면 됬습니다.


안되는 사례1)

jsp페이지)

<script type = "text/javascript" src = "/step11/upper/lower/javascript/boardScript.js"></script>

위의 <script src="<c:url  이거랑  태그 형태가 약간 다릅니다.


mvc-config.xml)

<mvc:resources locat~~ 이 태그 내용 아예 삭제 


결과 : 해당 js파일을 찾을수없다는 에러는 안나오는데.... 

해당 파일 내용이 하나도없게 나옵니다. (원래 함수랑 다 있습니다)


그래서 자바스크립트함수를 호출해보면, 

"그런함수 정의되지않았다" 라고 에러메시지가 뜹니다.


??? 파일은 있는데 내용은 없다? 이런일은 처음겪어봅니다.

물론 톰캣내리고 쿠키삭제까지 하고 안되서 아예 컴퓨터껏다켜도 그럽니다.


되는사례2)

하지만 다른 Spring Web Maven Project에서는, 위랑 똑같이....

이렇게 jsp페이지에서 경로 매핑같은거 안하고 Full경로로 쓴다음,

<script>태그 쓸 때 <c:url 이런거 안쓰고,

<mvc:resource locat이런 코드 없었습니다. 

근데도 위랑 달리 됩니다. 잘 돌아갑니다.


위에서는 똑같이 <c:url 안쓰고 <mvc:resource 삭제했는데 안되구요.


정리 - 의문)

1. <script + <c:url을 같이쓰고 <mvc:resource를 사용하면 성공합니다.

2. <script만 쓰고, <mvc:resource를 안쓰면 실패할 때도있고, 성공할 때도 있습니다.

3. 학원은 <script만 쓰고, <mvc:resource를 썼는데 코드가 잘 돌아가며,

4. 저는 <script만 쓰고, <mvc:resource를 쓰면 위처럼 파일은 있는데 내용은 하나도안나와서

그런함수 정의안됬다는 메시지가 뜹니다.


결론)

이 셋의 상관관계를 잘 모르겠습니다...

0
  • 답변 1

  • SDuck
    976
    2019-04-03 13:41:53
    Context Path 찾아보세요.
  • 로그인을 하시면 답변을 등록할 수 있습니다.