2012-06-16 40 views
6

Trình chỉnh sửa TinyMCE trong trang "Chỉnh sửa bài đăng" trên WordPress của tôi dường như bị hỏng. console Chrome sẽ hiển thị:Wordpress tinymce.js được phân tích cú pháp thành 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 

Nếu tôi kiểm tra tinymce.js trong Công cụ nhà phát triển Chrome, tôi thấy các tiêu đề phản ứng:

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 

Và câu trả lời này:

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

khác nhau khác. tệp js đang được truy xuất và thực thi đúng cách. Tắt W3TC không tạo ra sự khác biệt nào. Vấn đề tồn tại trong Firefox, quá. Vấn đề dường như đã đột ngột bị cắt xén; Tôi không biết bất cứ điều gì mà tôi đã thay đổi, thậm chí không cập nhật hoặc cài đặt/gỡ cài đặt plugin.

Xin cảm ơn trước.

+0

Bạn có chắc chắn bạn không sử dụng php để đưa tệp js đó vào đâu đó không? 'grep -r -n -I --color/home/mysite/public_html/tiny_mce.js' hoặc toàn bộ thư mục? cũng kiểm tra http conf và bất kỳ .htaccess trong thư mục đó hoặc bất kỳ của cha mẹ của nó không làm cho rằng tập tin/thư mục được coi là php – gingerCodeNinja

Trả lời

4

Điều này sẽ không xảy ra trừ khi PHP đang xử lý yêu cầu tệp .js.

Kiểm tra tệp conf của Apache2 của bạn và cũng kiểm tra mọi tệp conf.d trong thư mục conf.d. Ngoài ra, hãy kiểm tra tệp .htaccess của bạn. Trong các tập tin tìm kiếm một cái gì đó như thế này:

AddHandler application/x-httpd-php .js 

Nó có thể xảy ra trong một khối như thế này:

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

Một số hướng dẫn .htaccess và cấu hình apache đề nghị sử dụng PHP để xử lý .js file vì một số thủ thuật nó sẽ cho phép bạn làm. Lý do phổ biến nhất là gọi một tệp PHP GZIP thành ZIP Nén các tệp JS. Thật không may, sử dụng php để xử lý tiny_mce.js dường như phá vỡ Wordpress. PHP đang vấp phải thứ gì đó trong tệp tiny_mce.js - có lẽ vì nó đã được rút gọn?

Tôi đã gặp sự cố chính xác này và phải xóa trình xử lý php cho các tệp .js khỏi cấu hình của tôi. Có thực sự không cần nó vì Apache của tôi được cấu hình để tự nén. Tôi không gọi một tập tin PHP để làm gzip. Dựa vào một kịch bản PHP để nén zip thực sự không phải là cách tốt nhất để làm việc (rõ ràng là vì nó tạo ra các vấn đề như thế này!).

Hy vọng điều này sẽ giúp ai đó.

Độc giả cũng có thể tìm thấy bài này hữu ích: Caching problem using "AddHandler application/x-httpd-php"

Tôi cũng sẽ thêm rằng tùy tiện sử dụng PHP để xử lý các file tĩnh như JS và CSS không phải là một ý tưởng tốt vì lý do hiệu suất. Bạn không bao giờ nên gọi một trình xử lý PHP trừ khi các tệp thực sự động. Nếu không, bạn sẽ thêm các yêu cầu tài nguyên không cần thiết vào máy chủ.

+0

cảm ơn người đàn ông! Tôi đã tìm kiếm một giải pháp cho vấn đề này trong một thời gian dài. –

Các vấn đề liên quan