source

정의('CONCATENATE_SCRIPTs', false)를 사용하도록 강제됨; 갑자기

factcode 2023. 9. 26. 22:36
반응형

정의('CONCATENATE_SCRIPTs', false)를 사용하도록 강제됨; 갑자기

저는 월요일에 우리가 관리/유지하는 워드프레스 사이트 중 하나에서 시각 편집기가 작동하지 않는다는 이메일을 받고 출근했습니다.

아니나 다를까, 문제를 복제할 수 있었고 콘솔에 수많은 자바스크립트 오류가 있다는 것을 발견했습니다.

Javascript errors

첫 번째 오류를 검색해보니 워드프레스 포럼에서 사람들이 문제를 해결하기 위해 wp-config.php 파일에 다음 내용을 추가해야 한다는 글이 여러 개 올라왔습니다.

define('CONCATENATE_SCRIPTS', false );

그러나 인터넷 전체에서 왜 갑자기 이것이 추가되어야 하는지에 대한 설명은 없습니다.

그 때문에 저는 도대체 무슨 일이 일어나고 있는지 알아내기 위해 그 문제를 파헤치기 시작했습니다.

워드프레스 관리자 영역을 클릭해보니 항상 이 코드 줄로 문제가 되돌아옵니다.

Uncaught SyntaxError: missing ) after argument list
load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils,underscore,thickbox,shortcode,media-up…:227

227호선

https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,underscore,thickbox,shortcode,media-upload&ver=4.3.1

다음과 같습니다.

if(!params['modal']){jQuery(document).bind('keydown.thickbox',function(e){if(e.which==27){tb_remove();return false;}});}}catch(e){}}

이것은 내가 워드프레스 관리 영역 내에 있는 다음 페이지에 있을 때 발생합니다.

// Dashboard
/wp-admin/index.php

// Plugins page
/wp-admin/plugins.php

// Edit user page
/wp-admin/user-edit.php?user_id=###

// Edit post page
/wp-admin/post.php?post=###&action=edit

각 페이지에 로드 스크립트가 있습니다.php 소스가 달라서 아래에 그 정보를 제공합니다.

// Dashboard
/wp-admin/index.php

https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,underscore,thickbox,shortcode,media-upload&ver=4.3.1

// Plugins page
/wp-admin/plugins.php

https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,underscore,wp-util,wp-a11y,updates,thickbox,shortcode,media-upload&ver=4.3.1

// Edit user page
/wp-admin/user-edit.php?user_id=###

https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,zxcvbn-async,underscore,thickbox,shortcode,media-upload&ver=4.3.1

// Edit post page
/wp-admin/post.php?post=###&action=edit

https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,thickbox,shortcod&load%5B%5D=e,plupload,jquery-ui-position,jquery-ui-datepicker,jquery-ui-menu,jquery-ui-autocomplete,jquery-ui-resizable,jquery-ui-draggable&load%5B%5D=,jquery-ui-button,jquery-ui-dialog,media-upload&ver=4.3.1

그런 다음 관리 영역에 있는 페이지에 도착했는데, 이 페이지에서 자바스크립트 오류가 나타나지 않았습니다!

// The page that lists all of the pages on the site
/wp-admin/edit.php?post_type=page

이 페이지에서는 로드 스크립트입니다.php 소스는 다음과 같습니다.

// The page that lists all of the pages on the site
/wp-admin/edit.php?post_type=page

https://DOMAIN_NAME/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,utils,thickbox,underscore,shortcode,media-upload&ver=4.3.1

그런 다음 해당 파일을 브라우저로 직접 찾아가서 다른 페이지들이 모두 오류를 던지고 있던 문자열이기 때문에 다음 문자열을 구체적으로 검색했습니다.

if(!params['modal']){jQuery(document).bind('keydown.thickbox',function(e){if(e.which==27){tb_remove();return false;}});}}catch(e){}}

놀랍게도, 그 코드 라인은 최소화되지 않은 반면, 자바스크립트 오류가 발생하면 다른 모든 경우에 코드가 최소화됩니다.

if(!params['modal']){
                 jQuery(document).bind('keydown.thickbox', function(e){
                       if ( e.which == 27 ){ // close
                              tb_remove();
                              return false;
                       }
                 });
          }

   } catch(e) {
          //nothing here
   }
}

서버의 어떤 것도 변경/업데이트되지 않았고 워드프레스, 테마, 플러그인도 업데이트되지 않았습니다.

또한 기본 스물다섯 테마를 활성화하고 모든 플러그인을 비활성화하는 데까지 갔지만 여전히 문제가 있습니다.

심지어 이 사이트와 같은 서버에 문제가 있는 워드프레스 사이트도 있고, 다른 사이트에는 이 문제가 없습니다.

그 날이 끝날 무렵, 위에서 제공한 자세한 정보가 도대체 무슨 일이 일어나고 있는지 그리고 왜 그런지 알아내는 데 도움이 되는 사람이 있는지 잘 모르겠습니다.define('CONCATENATE_SCRIPTS', false );갑자기 wp-config.php 파일에 추가해야 자바스크립트 오류가 사라져서 비주얼 에디터가 다시 작동합니다.

입니다를 하여 지금까지 본 것 중 입니다.define('CONCATENATE_SCRIPTS', false );오류를 제거하기 위해 wp-config. php 파일로 이동합니다.

JS 코드에 구문 오류가 있습니다.

이 코드가 무엇을 달성하려고 하는지는 명확하지 않지만 분명한 구문 오류가 있습니다.

변경 시도:

if(!params['modal']){
                 jQuery(document).bind('keydown.thickbox', function(e){
                       if ( e.which == 27 ){ // close
                              tb_remove();
                              return false;
                       }
                 });
          }

   } catch(e) {
          //nothing here
   }
}

받는 사람:

if(!params['modal']){
                 jQuery(document).bind('keydown.thickbox', function(e){
                       if ( e.which == 27 ){ // close
                              tb_remove();
                              return false;
                       }
                 });                 
}

이 코드는 "shortcode"로 등록된 파일에서 로드된 것 같습니다. 또한 wp_dequeue_script 함수를 사용하여 충돌하는 스크립트를 제거하거나 큐를 위아래로 이동할 수 있습니다.

 wp_dequeue_script("shortcode");
 wp_enqueue_script("shortcode","script_url",array('jquery','lastScript'));

언급URL : https://stackoverflow.com/questions/32996217/forced-to-use-defineconcatenate-scripts-false-all-of-a-sudden

반응형