6

WordPressの「投稿の編集」ページのTinyMCEエディターが壊れているようです。Chromeコンソールの表示:

Resource interpreted as Script but transferred with MIME type text/html: "http://mysite.com/wp-includes/js/tinymce/langs/wp-langs-en.js?ver=349-20805". post.php:62
Resource interpreted as Script but transferred with MIME type text/html: "http://mysite.com/wp-includes/js/tinymce/tiny_mce.js?ver=349-20805". post.php:62
Uncaught SyntaxError: Unexpected token <          tiny_mce.js:1
Uncaught ReferenceError: tinyMCE is not defined   wp-langs-en.js:1
Uncaught ReferenceError: tinymce is not defined   post.php:1180

Chromeデベロッパーツールでtinymce.jsを調べると、次の応答ヘッダーが表示されます。

Cache-Control:public, must-revalidate, proxy-revalidate
Connection:close
Content-Type:text/html
Date:Sat, 16 Jun 2012 01:40:42 GMT
Pragma:public
Server:Apache
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.2.17, W3 Total Cache/0.9.2.4

そしてこの応答:

<br />
<b>Parse error</b>:  syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in <b>/home/mysite/public_html/wp-includes/js/tinymce/tiny_mce.js</b> on line <b>1</b><br />

他のさまざまな.jsファイルが適切に取得および実行されています。W3TCをオフにしても違いはありません。Firefoxにも問題があります。問題は突然発生したようです。プラグインを更新したり、インストール/アンインストールしたりすることすら、自分が変更したことは何も知りません。

前もって感謝します。

4

1 に答える 1

4

PHP が .js ファイル リクエストを処理しない限り、これは発生しません。

Apache2 conf ファイルを確認し、conf.d フォルダー内のすべての conf.d ファイルも確認します。.htaccess ファイルも確認してください。これらのファイルで、次のようなものを探します。

AddHandler application/x-httpd-php .js

次のようなブロックで発生する可能性があります。

<FilesMatch ".js$">
AddHandler application/x-httpd-php .js
php_value default_mimetype "text/javascript"
</FilesMatch>

一部の .htaccess および apache 構成チュートリアルでは、PHP を使用して .js ファイルを処理することを提案しています。最も一般的な理由は、PHP GZIP ファイルを呼び出して JS ファイルを ZIP 圧縮することです。残念ながら、php を使用して tiny_mce.js を処理すると、Wordpress が壊れてしまうようです。PHP が tiny_mce.js ファイル内の何かでつまずいています。おそらく縮小されているためでしょうか?

私はこの正確な問題に遭遇し、構成から .js ファイルの php ハンドラーを削除する必要がありました。私のApacheはそれ自体で圧縮を行うように構成されているため、実際には必要ありませんでした。gzip を実行するために PHP ファイルを呼び出しているわけではありません。zip 圧縮を PHP スクリプトに依存することは、実際には最善の方法ではありません (明らかに、このような問題が発生するためです!)。

これが誰かに役立つことを願っています。

読者は、この投稿も役に立つかもしれません: 「AddHandler application/x-httpd-php」を使用したキャッシングの問題

また、PHP を勝手に使用して JS や CSS などの静的ファイルを処理することは、パフォーマンス上の理由からお勧めできません。ファイルが本当に動的でない限り、PHP ハンドラーを呼び出すべきではありません。そうしないと、不要なリソース要件がサーバーに追加されます。

于 2012-11-19T09:41:37.140 に答える