2012-06-16 6 views
6

El editor TinyMCE en mi página de WordPress "Editar publicación" parece estar roto. consola de Chrome muestra:Wordpress tinymce.js siendo analizado como PHP?

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 

Si examino tinymce.js en las Herramientas para desarrolladores de Chrome, veo estas cabeceras de respuesta:

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 

y esta respuesta:

<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 /> 

Varios otros. Los archivos js se están recuperando y ejecutando correctamente. Apagar W3TC no hace ninguna diferencia. El problema existe en Firefox, también. El problema parece haber surgido de repente; No estoy al tanto de nada que haya cambiado, ni siquiera de actualizar o instalar/desinstalar complementos.

Gracias de antemano.

+0

¿Estás seguro de que no estás utilizando php para incluir ese archivo js en alguna parte? 'grep -r -n -I --color/home/mysite/public_html/tiny_mce.js', ¿o el directorio completo? también compruebe http conf y cualquier .htaccess en esa carpeta o cualquiera de sus padres no están tratando ese archivo/carpeta como php – gingerCodeNinja

Respuesta

4

Esto no estaría sucediendo a menos que PHP esté manejando la solicitud del archivo .js.

Revise su archivo conf de Apache2 y también verifique cualquier archivo conf.d en la carpeta conf.d. También verifique su archivo .htaccess. En esos archivos buscar algo como esto:

AddHandler application/x-httpd-php .js 

que podría ocurrir en un bloque de la siguiente manera:

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

Algunos tutoriales .htaccess y configuración de Apache sugerir el uso de PHP para manejar ficheros .js a causa de alguna trucos que te dejarán hacer. La razón más común es para llamar un archivo PHP GZIP a ZIP Comprimir los archivos JS. Desafortunadamente, usar php para manejar tiny_mce.js parece romper Wordpress. PHP se está tropezando con algo en el archivo tiny_mce.js, ¿quizás porque está minimizado?

Me encontré con este problema exacto y tuve que eliminar el controlador de php para los archivos .js de mi configuración. En realidad, no era necesario porque mi Apache está configurado para hacer zipping por sí mismo. No estoy llamando a un archivo PHP para hacer el gzip. Depender de un script PHP para compresión zip realmente no es la mejor manera de hacer las cosas (¡obviamente porque crea problemas como este!).

Espero que esto ayude a alguien.

Los lectores también pueden encontrar este post útil: Caching problem using "AddHandler application/x-httpd-php"

también voy a añadir que el uso de PHP para manejar arbitrariamente archivos estáticos como JS y CSS no es una buena idea por razones de rendimiento. Nunca deberías llamar a un manejador PHP a menos que los archivos sean verdaderamente dinámicos. De lo contrario, está agregando requisitos de recursos innecesarios al servidor.

+0

gracias hombre! Estaba buscando una solución a este problema durante mucho tiempo. –

Cuestiones relacionadas