서버이전하니 head.sub.php의 add_javascript,add_stylesheet가 작동하지 않습니다.

서버이전하니 head.sub.php의 add_javascript,add_stylesheet가 작동하지 않습니다.

QA

서버이전하니 head.sub.php의 add_javascript,add_stylesheet가 작동하지 않습니다.

본문

현재는 awslinux에서 운영중인데요,

기능을 추가하고 싶어서 로컬 개발환경으로 파일과 디비를 복사해왔습니다.

그런데 /shop메인페이지를 들어오니, header부분만 뜨고 메인 부분을 뜨질 않습니다.

추적을 해보니 theme/basic/head.sub.php 에서 전역변수를 선언하고  add_javascript,add_stylesheet를 통해서

파일들을 호출하는데, 해당 코드들이 모두 작동하지 않았습니다.

해서 jquery도, Css 파일들도 모두 호출이 되지 않았습니다.

aws 인스턴스를 하나더 생성해서 동일한 환경을 하나더 만들어서도 테스트해봤고, cafe24에서 웹서버 하나 호스팅도 해봤고, 별짓을 다 해봤는데, 증상은 똑같습니다.

아파치 서버의 설정의 문제인지? 혹은 도메인이 바뀌어서 그런건지? 무슨 이유일까요...?

 

 

1948387294_1739715541.6393.png

 

1948387294_1739715568.8587.png

1948387294_1739715595.7782.png

이 질문에 댓글 쓰기 :

답변 4

혹시 tail.sub.php 파일에 아래 부분이 있는지 확인하시고


<?php echo html_end(); // HTML 마지막 처리 함수 : 반드시 넣어주시기 바랍니다.

tail.sub.php 파일이 include  되고 있는지 확인해보세요.

html_end() 함수가 add_javascript ,add_stylesheet 함수로 호출된 파일을 마지막에 출력하는 부분입니다.

 

에러 로그 풀어서 확인해보세요

소스코드 전체 보기하면 빨간줄 에러 나오거나 이러진 않나여?
제이쿼리가 정상적으로 로드 되지 않아서 나오는현상인데요 이게 서버내에서 js 폴더가 빠지거나 문제가 있어서 그런거 같아요 자세한건 사이트 주소 오픈해야지 알것 같아요

JavaScript 파일이 로드되지 않아서,

ReferenceError: jQuery is not defined 오류가 발생하는 것 같습니다.

 

1. JavaScript 파일(shop.js)이 실제 서버에 존재하는지 확인하고,

  브라우저에서 접근 가능한지 테스트

2. head.sub.php에서 add_javascript()가 정상적으로 실행되고 있는지

  var_dump()로 확인

3. Apache/Nginx 설정을 점검하여

  JS 파일 제공이 차단되지 않았는지 확인

4. jQuery 로드 순서를 조정하여

  ReferenceError 문제 해결에 접근.

add_javascript , add_stylesheet 가 제대로 작동하지 않는것 같습니다.
var_dump로 해보니 null이 뜨더라구요...
Javascript파일이 업로드 되지 않는 이유가 add_javascript가 작동하지 않습니다.

1,3,4는 문제가 없습니다.

*아래 코드를 head.sub.php에서 실행하여
  $GLOBALS['head_script'] 또는 $head_script 변수가 정상적으로 정의되었는지 확인 -

var_dump($GLOBALS['head_script']);  // 전역 변수 상태 확인
var_dump($head_script);  // 지역 변수 상태 확인
exit;

- 만약 NULL이라면 head_script 전역 변수가 초기화되지 않았거나,
  add_javascript() 실행 전에 덮어씌워진 것일 수 있습니다.

※ 확인 방안 몇 가지 찾아봤습니다, = = =

*add_javascript() 및 add_stylesheet() 함수가 존재하는지 확인 -

if (!function_exists('add_javascript')) {
    die("add_javascript() 함수가 정의되지 않음");
}

- 해당 함수가 존재하지 않는다면, head.sub.php가 정상적으로 include되지 않았거나,
  config.php 또는 common.php에서 정의되지 않은 것입니다.

*전역 변수가 초기화되지 않아 NULL이 반환될 가능성이 큼.
  - 아래 코드를 head.sub.php 최상단에 추가하여 강제 초기화.

if (!isset($GLOBALS['head_script'])) {
    $GLOBALS['head_script'] = array();
}

*tail.sub.php에서 정상적으로 html_end()가 실행되는지 다시(꼭) 확인

if (!function_exists('html_end')) {
    die("html_end() 함수가 실행되지 않음");
}

*head.sub.php가 정상적으로 include되었는지 확인 -

echo "head.sub.php 로드됨";
exit;

- 해당 메시지가 출력되지 않는다면, head.sub.php가 include되지 않은 것.
  include 경로를 점검하고, config.php 또는 common.php에서 누락된 부분이 있는지 확인.

J쿼리가 로드되지않거나 또는 먼저 $ 를 사용할려구 하니 발생을 하는듯 합니다. 즉 $기호가 정의 되지않아다는 뜻이기도합니다.하여 경로 설정이 잘못되어잇을수도 있다라는뜻이기도합니다. 의뢰한번 신청해보시죠 전체적으로 체크해봐야할 사항인듯 보입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 17,385
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT