2010-12-10 31 views
41

Tôi đã cài đặt TinyMCE, mọi thứ đều hoạt động tốt. sau đó tôi sử dụng Google Đóng gói JavaScript của trang web cùng với TinyMCE_srcĐường dẫn TinyMCE, Cách chỉ định vị trí tải những thứ như editor_plugin.js

Vấn đề tôi đang gặp là TinyMCE hiện đang thực hiện cuộc gọi đến:

plugins/paste/editor_plugin.js 
themes/advanced/editor_template.js 
langs/en.js 

Và rằng con đường đang được sử dụng là không hợp lệ, họ 404'ing

Tôi làm cách nào để biết TinyMCE đi đâu để nhận các tệp này?

tôi đã cố gắng:

relative_urls : false, 
document_base_url : "http://www.site.com/path1/", 

Nhưng họ không có ảnh hưởng đến các tập tin trên.

Khuyên? Cảm ơn

+0

trong trường hợp của tôi , Tôi không sử dụng bất cứ thứ gì như "Google Closure". Chỉ muốn tải TinyMCE một cách năng động. Tôi đang sử dụng 'jquery.tinymce.js'. Khi tôi tải TinyMCE, Firebug đưa ra lỗi, ở đây rõ ràng là JQuery đang cố tải smth như '/ _cms/products // langs/en.js' thay vì'/tinymce/langs/en.js' –

+0

mà tôi gặp phải cùng một vấn đề khi gộp các tệp javascript của tôi. Khi nhìn vào nguồn TinyMce, nó bắt nó có một vài cách khác nhau để tìm địa chỉ cơ sở để nạp các mô-đun của nó. Một trong số đó là tìm trong hte dom cho địa chỉ được sử dụng để bao gồm tiny_mce.js. Điều này không thành công khi bao gồm tệp trong một gói. Tôi đã khắc phục sự cố bằng cách thêm tinyMCE.baseURL trước smallMCE.init của tôi. –

Trả lời

4

Nếu bạn đang sử dụng plugin TinyMCE jQuery, bạn có thể tải mọi thứ từ một vị trí từ xa, chỉ cần thêm thông số script_url vào mã init của bạn. Nó sẽ tải mọi thứ từ đó, bao gồm mọi tập lệnh/hình ảnh/v.v.

$('textarea').tinymce({ 
    script_url: 'http://tinymce.moxiecode.com/js/tinymce/jscripts/tiny_mce/tiny_mce.js' 
}); 

Check-out fiddle này, nó bao gồm toàn bộ điều khiển từ xa từ trang web của TinyMCE: http://jsfiddle.net/xgPzS/22/

+0

không giúp: (Không thể tìm ra lý do là gì, nhưng JQuery không gọi URL hợp lệ. Thay vì cho 404 tôi in URL được yêu cầu ('$ _SERVER ['REQUEST_URI']') và Firebug hiển thị lỗi sau: 'cờ biểu thức chính quy không hợp lệ p/_cms/products // themes/simple/editor_template.js' (vì'/'JQuery nghĩ đó là regexp :)) –

+0

Nó không phải JS, nó là câu trả lời từ máy chủ :) Máy chủ chỉ in URL mà JQuery đang cố truy cập! JQuery "chờ đợi" mã JS, nhưng JS không tồn tại trong URL nó yêu cầu –

+0

@Hrant Khachatrian: Bạn php nên trông giống như sau: '$ ('textarea') .tinymce ({script_url: ' subdirectory/whatever.js '}); 'Nếu bạn làm điều đó, HTML được tạo ra được gửi đến trình duyệt của bạn sẽ chứa đường dẫn chính xác đến tập lệnh. Lưu ý chuỗi trích dẫn trước và sau thẻ php. – DarthJDG

9

Bạn có thể ghi đè lên địa chỉ cơ sở cho TinyMCE bằng cách đặt đoạn mã sau trước khi khởi TinyMCE.

var tinyMCEPreInit = { 
    suffix: '', 
    base: '/tinymce/', 
    query: '' 
}; 

Điều này hữu ích nếu bạn đã tải tinyMCE từ nguồn được hợp nhất và đường cơ sở không được tìm thấy chính xác.

+3

'var tinyMCEPreInit' có thể phải là' window.tinyMCEPreInit' – huyz

76

tôi đã cùng một vấn đề, và nó có thể được giải quyết dễ dàng nếu chúng ta đã có thể xác định url cơ sở sử dụng document_base_url.

Ngoài ra, tôi có thể chỉ định url cơ sở trước khi khởi tạo tinymce.

tinyMCE.baseURL = "URL_TO/tinymce/jscripts/tiny_mce/";// trailing slash important 

tinyMCE.init({ 
     mode : "textareas", 
     theme : "simple" 
}); 

TinyMCE hiện đang hoạt động tốt.

+16

Đã thử nghiệm trong phiên bản 4.0b1 mới nhất - đang hoạt động! Ngoài ra, tôi đã phải thêm tinyMCE.suffix = '.min'; – dikirill

+4

Trong phiên bản 4.0.16 không thêm dấu gạch chéo. – DanFromGermany

+0

Không thể tìm thấy tài liệu này ở bất cứ đâu. Tôi có thiếu một cái gì đó hoặc đã làm cách duy nhất để tìm hiểu điều này liên quan đến đào bới thông qua mã nguồn? –

6

Theo này: http://www.tinymce.com/wiki.php/Configuration:theme_url

tinymce.init({ 
    ... 
    theme_url: (document.location.pathname + '/js/tinymce/themes/modern/theme.js').replace("\/\/", "\/"), 
    skin_url: (document.location.pathname + '/js/tinymce/skins/lightgray/').replace("\/\/", "\/"), 
    ... 

Nhưng, cần phải cẩn thận với những con đường. Với sự giúp đỡ document.location.pathname Tôi đã có thư mục gốc của dự án. Thay thế hàm cần thay thế dấu gạch chéo kép bằng dấu gạch chéo đơn, vì máy chủ khác nhau có thể trả về "... // máy chủ/trang web" HOẶC "... // máy chủ/trang web /" và có thể là: "... // máy chủ/trang web/js ... "OR" ... // server/site // js ... ".

+0

Điều duy nhất làm việc cho tôi. 'document_base_url' và' relative_urls' dường như không làm gì cả. –

0

Theo tài liệu TinyMCE 4.x bạn có thể chỉ định url cơ sở tài liệu trong init.

tinymce.init({ 
     document_base_url: "http://www.example.com/path1/" 
}); 

nếu bạn đang sử dụng CodeIgniter, chỉ cần sử dụng base_url()

tinymce.init({ 
     document_base_url: "<?php echo base_url() ?>" 
}); 

Hãy nhớ rằng: relative_url phải đúng để làm việc đó một cách hoàn hảo nếu không bạn sẽ nhận được URL tuyệt đối.

Để biết thêm chi tiết: http://www.tinymce.com/wiki.php/Configuration:document_base_url

2

Bundle mọi việc bằng grunt (hướng dẫn trên github) sau đó bạn sẽ chỉ phải cấu hình từ đâu để tải tất cả các css sử dụng tùy chọn skin_url

tinymce.init({skin_url: window.location.origin + '/css/tinymce'}) 
+1

''./Css/tinymce/lightgray'' làm việc cho tôi. –

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