web-dev-qa-db-ja.com

WP 管理者にアイコンが表示されない、多数のJavaScriptエラーが発生した、ただSCRIPT_DEBUGがfalseの場合のみ

WordPressを展開しようとしている単一のLinux/Apacheサーバーにアクセスできます。このエラーのために、デフォルトの17のテーマとすべてのプラグインを無効にしてテストしました。

管理者としてログインしたwp-adminページに移動すると、左側のナビゲーションのほとんどのアイコンが表示されず、チェックボックスがチェックされず(たとえば)、ブラウザコンソールにJavaScriptエラーが表示されます。

たとえば、ダッシュボードページではアイコンは表示されず、エラーコンソールには次のように表示されます。

Uncaught TypeError: a.widget is not a function
at load-scripts.php?c=0&load[]=hoverIntent,common,admin-bar,wp-ajax-response,jquery-color,wp-lists,quicktags,jquery-query,admin-comments,jquery-ui-core,jquery-&load[]=ui-widget,jquery-ui-mouse,jquery-ui-sortable,postbox,underscore,wp-util,wp-a11y,dashboard,thickbox,plugin-install,updates,shortc&load[]=ode,media-upload,svg-Painter,heartbeat,wp-auth-check,wplink,jquery-ui-position,jquery-ui-menu,jquery-ui-autocomplete&ver=4.9.7:300
at load-scripts.php?c=0&load[]=hoverIntent,common,admin-bar,wp-ajax-response,jquery-color,wp-lists,quicktags,jquery-query,admin-comments,jquery-ui-core,jquery-&load[]=ui-widget,jquery-ui-mouse,jquery-ui-sortable,postbox,underscore,wp-util,wp-a11y,dashboard,thickbox,plugin-install,updates,shortc&load[]=ode,media-upload,svg-Painter,heartbeat,wp-auth-check,wplink,jquery-ui-position,jquery-ui-menu,jquery-ui-autocomplete&ver=4.9.7:300
at load-scripts.php?c=0&load[]=hoverIntent,common,admin-bar,wp-ajax-response,jquery-color,wp-lists,quicktags,jquery-query,admin-comments,jquery-ui-core,jquery-&load[]=ui-widget,jquery-ui-mouse,jquery-ui-sortable,postbox,underscore,wp-util,wp-a11y,dashboard,thickbox,plugin-install,updates,shortc&load[]=ode,media-upload,svg-Painter,heartbeat,wp-auth-check,wplink,jquery-ui-position,jquery-ui-menu,jquery-ui-autocomplete&ver=4.9.7:300

ブラウザのネットワークタブを見ると(Chrome、Safari、Firefoxを見て、Hostも見ています)、すべてのリクエストは200ステータスを返します。少なくとも要求がブロックされているようには見えません。

Wp-config.phpファイルにSCRIPT_DEBUG=trueを追加すると、これらすべてのエラーが停止し、インターフェースは通常どおり表示されます。

私はこの問題をローカルで再現することはできませんでした、そして私のホストは何が間違っているのか私に言うことができないようです(彼らはそれを見ます)。私は彼らに何を調べるように言うことができますか?そして/または私は何を調べることができますか?

更新日:より明確にするために、私の疑いはこれがサーバー上のパーミッションの問題になる可能性があるということです。おそらく、サーバーはWordPressが期待するようにファイルを連結することができません。しかし、ホストはこの効果について何も見つけることができませんでした、そして私は彼らに何を探すように言うべきか、あるいはそれが起こっていることさえしているのかを知るのに十分なLinux /ファイルパーミッションについて十分知識がありません。

1

自分のJavaScriptを管理者にロードしますか? SCRIPT_DEBUGがtrueに設定されている場合、私が正しく思い出した場合、JavaScriptは集中していませんが、別々にロードされます。そのため、カスタムJavaScriptが正しく再生されずに再生されない場合、これにより、全体のJavaScriptが破損し、正しく実行されない可能性があります。

追加したJavaScriptを1つずつ削除し、それが何かを変更するかどうかを確認してください。

1
kuchenundkakao

SCRIPT_DEBUGtrueに設定されている場合とfalseに設定されている場合のJavaScriptの唯一の違いは、SCRIPT_DEBUGtrueに設定されている場合、メインJavaScriptソースファイルはロードされ、通常(SCRIPT_DEBUGfalseに設定されている場合)、-縮小バージョン(例:file.min.js)は連結でロードされます&圧縮

そのため、明らかに、JSファイルの縮小バージョンが問題を引き起こしています。破損している可能性もあります。

WordPressコアをwordpress.orgのバージョンに置き換えます。これにより問題が解決する場合があります。

注:完了したら、ブラウザのキャッシュをクリアすることを忘れないでください。そうしないと、キャッシュから間違ったバージョンがロードされる可能性があります。

1
Fayaz

最新のWordpress 5.0.1でも同じ問題が発生していますが、/ wp-admin/*のみです。メインサイトは問題なくレンダリングされます。

'CONCATENATE_SCRIPTS'をfalseと定義しても問題が解決することがわかりました。つまり、縮小されたスクリプトは実際には問題ありません。

権限の問題も見られません。スクリプトを連結したときに何が起きるのか正確に調べようとしています -

0
Adon Irani