설치이후 다른 부분은 전부 이용이 가능한상태이며, 대시보드 바로 아래메뉴인

[사이트제작/편집] 메뉴의 이용이 불가능한경우 입니다.

 

그동한 한 3번정도 같은 상황을 당했었는데

처음 설치/코어 업그레이드/재설치/재설치한것 복구(확실하지는 않습니다.)

 

이정도 였던거 같은데 이후로는 문제가 안생기는것같지만 해당 문제 해결법을 자료저장용 + 공유 용으로 남깁니다.

 

해당[사이트제작/편집] 메뉴를 클릭하면 크롬의 경우 [수신된 데이터 없음. 324 오류(net::ERR_EMPTY_RESPONSE): 서버가 데이터를 전송하지 않고 연결을 종료했습니다.]

라고 뜨며, 먹통이 됩니다.

 

물론 뒤로가기하면 원래의 대시보드로 돌아오며 다른것은 모두 이용가능합니다.

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

해당 문제 해결방법입니다.

원본 주소 : https://xe1.xpressengine.com/qna/22164790

 

/xe/modules/menu/tpl/sitemap.html 파일에서 851라인 정도의 코드부분을..

아래처럼 수정해보세요..

========기존==================================

  .bind("move_node.jstree", function(event, data){
   //console.log(event, data);


   /*
    ._get_move ()
    Returns the lastly prepared move. The returned object contains:
    .o - the node being moved
    .r - the reference node in the move
    .ot - the origin tree instance
    .rt - the reference tree instance
    .p - the position to move to (may be a string - "last", "first", etc)
    .cp - the calculated position to move to (always a number)
    .np - the new parent
    .oc - the original node (if there was a copy)
    .cy - boolen indicating if the move was a copy
    .cr - same as np, but if a root node is created this is -1
    .op - the former parent
    .or - the node that was previously in the position of the moved node
   */
   var aMoveInfo = data.args[0];
   var aSource = aMoveInfo.o;
   var aTargetPosRef = aMoveInfo.r;
   var sTargetPos = aMoveInfo.p;
   var aNewParent = aMoveInfo.np;

   //console.log(aSource, aTargetPosRef, sTargetPos, aNewParent);
   //console.log(aSource[0], aTargetPosRef[0], sTargetPos, aNewParent[0]);

   var aNode, htParentInfo, htTargetInfo, htData, sMenuSrl, sTargetSrl, sParentSrl, nIdx;
   //htData = $.parseJSON($(htSource).attr('data-param');
   //console.log(sTargetPos);
   sMenuSrl = aSource[0].id.replace("menu", "");
   sParentSrl = aNewParent[0].id.replace("menu", "");
   sTargetSrl = aTargetPosRef[0].id.replace("menu", "");
   /*
console.log(123, aTargetPosRef);
console.log(sTargetSrl);
console.log(htNodeInfo);
*/
   switch(sTargetPos){
    case "after":
     // use the values as-is
    break;

    case "before":
     htTargetInfo = htNodeInfo[sTargetSrl];
     htParentInfo = htNodeInfo[htTargetInfo.sParentSrl];

     //console.log(htParentInfo);

     aNode = htParentInfo.aNode;

     for(var i=0, nLen=aNode.length; i<nLen; i++){
      //console.log(aNode[i].sText, aNode[i].sNodeSrl, "->", sTargetSrl);
      if(aNode[i].sNodeSrl == sTargetSrl){
       //console.log('found');
       break;
      }
     }
     //console.log(999, i);

     if(i === 0){
      sTargetSrl = 0;
     }else{
      sTargetSrl = aNode[i - 1].sNodeSrl;
     }
    break;

    case "first":
     sTargetSrl = 0;
    break;

    case "last":
     htParentInfo = htNodeInfo[sParentSrl];
     //console.log(222, htParentInfo, sParentSrl);

     aNode = htParentInfo.aNode;
     if(aNode.length == 0){
      sTargetSrl = 0;
     }else{
      sTargetSrl = aNode[aNode.length - 1].sNodeSrl;
     }
    break;

    default:
    break;
   }
==========================================================

 

========수정==============================================

  .bind("move_node.jstree", function(event, data){
   var aMoveInfo = data.args[0];
   var aSource = aMoveInfo.o;
   var aTargetPosRef = aMoveInfo.r;
   var sTargetPos = aMoveInfo.p;
   var aNewParent = aMoveInfo.np;

   var aNode, htParentInfo, htTargetInfo, htData, sMenuSrl, sTargetSrl, sParentSrl, nIdx;
   //htData = $.parseJSON($(htSource).attr('data-param');
   sMenuSrl = aSource[0].id.replace("menu", "");
   sParentSrl = aNewParent[0].id.replace("menu", "");
   sTargetSrl = aTargetPosRef[0].id.replace("menu", "");

   switch(sTargetPos){
    case "after":
     break;
    case "before":
     htTargetInfo = htNodeInfo[sTargetSrl];
     htParentInfo = htNodeInfo[htTargetInfo.sParentSrl];
     aNode = htParentInfo.aNode;
     for(var i=0, nLen=aNode.length; i<nLen; i++){
      if(aNode[i].sNodeSrl == sTargetSrl){
       break;
      }
     }
     if(i === 0){
      sTargetSrl = 0;
     }else{
      sTargetSrl = aNode[i - 1].sNodeSrl;
     }

     break;
    case "first":
     break;
    case "last":
     htParentInfo = htNodeInfo[sParentSrl];
     aNode = htParentInfo.aNode;
     if(aNode.length == 0){
      sTargetSrl = 0;
     }else{
      sTargetSrl = aNode[aNode.length - 1].sNodeSrl;
     }
     break;
    default:
    break;
   }
==========================================================

 

 

각 사이트별로 위치가 다 다를것으로 보이니 적용할때는 정확한 위치를 확인후 적용하는것이 좋습니다.

 

왜 저런 오류가 나타난건지는 알수가없네요. 비슷하게 검색해봐도 내용을 찾을수가 없고ㅜㅜㅜㅜ

혹시 아시는분 계실까요?

 

ps. 물론 지금은 저런 오류없이 정상적으로 사이트를 운영중입니다.

ps2. 코어업데이트가 가장 무서운이유->또 저럴까봐ㅜㅜ

  • Lv11
    사이트 맵 메뉴 오류 가장 많이 납니다..ㅜㅜ
  • Lv11 ?
    그런거였군요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ