메뉴 건너뛰기

조회 수 373 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

환경

서버 : 톰캣 단독
 

문제

스프링을 사용중인 웹 사이트에서 최초 접속시 CSS가 로딩되지 않는 현상이 있었다. 새로고침하면 이후부터는 제대로 나오긴 하지만 브라우저를 닫고 다시 웹 사이트에 접속하면 여전히 처음에는 CSS가 로딩되지 않았다. 그런데 index.html에서 페이지 리다이렉트로 문제의 페이지에 접근한 경우에는 제대로 나왔다. 즉 주소를 직접 입력해서 접속시 최초 1회는 페이지가 제대로 나오지 않는 것이다.

그래서 브라우저의 콘솔을 열어보니 아래와 같은 로그가 꽤 많이 찍혀있었다.
“http://127.0.0.1:9080/gim/;jsessionid=02B695062249B5363476B2D5293A2AF9js/vendor/modernizr-2.8.3-respond-1.4.2.min.js” 소스의 <script> 로딩을 실패하였습니다.

메시지를 보면 script가 로딩되지 않는다고 하는데 script와 더불어 CSS가 함께 로딩되지 않아서 디자인 없이 HTML만 불러오는 상황이었다.

문제가 되는 부분을 jsp 소스에서 찾았고 그 중 일부만 보면 아래와 같은 형식으로 되어있었다.
<link rel="stylesheet" href="<c:url value='/'/>css/main.css">
<script src="<c:url value='/'/>js/vendor/modernizr-2.8.3-respond-1.4.2.min.js"></script>
 

해결

위의 문제는 <c:url value='/'/>의 결과 값인 /gim의 뒤에 세션아이디가 붙어 "/gim/;jsessionid=19B754062123249B5476B2D5435A2AF3" 처럼 경로가 변하면서 문제가 된 것이었다.

2가지 해결방법을 발견하였는데

첫 번째로 아래처럼 상대 경로로 고쳐서 문제를 해결하였다.

<link rel="stylesheet" href="../css/main.css">
<script src="../js/vendor/modernizr-2.8.3-respond-1.4.2.min.js"></script>
이경우 소스보기 시에도 깔끔하게 위와 동일한 소스가 보인다
 

두 번째로 아래처럼 <c:url>을 고쳐서 문제를 해결하였다.

<link rel="stylesheet" href="<c:url value='/css/main.css'/>">
<script src="<c:url value='/js/vendor/modernizr-2.8.3-respond-1.4.2.min.js'/>"></script>
이 경우 해당 화면에서 소스보기 하면 아래처럼 나타났다.
<link rel="stylesheet" href="/gim/css/main.css;jsessionid=19B754062123249B5476B2D5435A2AF3">
<script src="/gim/js/vendor/modernizr-2.8.3-respond-1.4.2.min.js;jsessionid=19B754062123249B5476B2D5435A2AF3"></script>

<c:url> 사용시 주의하는 것이 좋겠다.


  1. No Image 26Mar
    by
    2021/03/26 Views 238 

    foreach문

  2. No Image 26Mar
    by
    2021/03/26 Views 321 

    항상 최신버전으로 사용하기

  3. No Image 26Mar
    by
    2021/03/26 Views 1406 

    selectbox multiple 선택한 값들 submit 해서 받기

  4. No Image 26Mar
    by
    2021/03/26 Views 941 

    DateTimepicker ( Timepicker + Datepicker )

  5. No Image 26Mar
    by
    2021/03/26 Views 267 

    라디오 버튼 선택값 가져오기

  6. No Image 26Mar
    by
    2021/03/26 Views 760 

    간단한 스크롤 따라 움직이는 메뉴 만들기

  7. No Image 26Mar
    by
    2021/03/26 Views 1538 

    datepicker, onclick 이벤트시에 한번에 뜨게 하기

  8. No Image 25Mar
    by
    2021/03/25 Views 428 

    Cesium에서 canvas 화면 center 지점의 좌표 취득

  9. No Image 25Mar
    by
    2021/03/25 Views 684 

    모달 띄우는 코드

  10. No Image 25Mar
    by
    2021/03/25 Views 345 

    javascript, jQuery에서 루프 돌리기 예 (for, forEach, each)

  11. No Image 25Mar
    by
    2021/03/25 Views 191 

    jQuery 사용자 정의 속성이 잘 반영되지 않은 경우

  12. No Image 25Mar
    by 조쉬
    2021/03/25 Views 373 

    최초 접속시 css와 script가 로딩되지 않을때

  13. No Image 25Mar
    by
    2021/03/25 Views 452 

    ajax 동기화 처리하기

  14. No Image 25Mar
    by
    2021/03/25 Views 275 

    CSS로 요소에 대한 클릭 등 이벤트 발생을 막고 싶을 때

  15. No Image 25Mar
    by
    2021/03/25 Views 406 

    목록의 체크 선택/해제에 따라 [전체선택] 체크박스를 체크하거나 해제하기

  16. No Image 25Mar
    by
    2021/03/25 Views 13711 

    Ajax를 통해 전송된 데이터를 Controller에서 List 객체로 받기

  17. No Image 25Mar
    by
    2021/03/25 Views 225 

    radio 제어하기

  18. No Image 25Mar
    by
    2021/03/25 Views 277 

    모든 링크를 읽어들여 기존의 태그 뒤에 새창열기 태그를 추가하기 예

  19. No Image 25Mar
    by
    2021/03/25 Views 274 

    jQuery로 접속 주소(URL) 알아내기

  20. No Image 25Mar
    by
    2021/03/25 Views 269 

    jquery 사용자정의 속성의 사용

Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved