web-dev-qa-db-fra.com

Chemins TinyMCE, Comment spécifier où charger des choses comme editor_plugin.js

J'ai installé TinyMCE, tout fonctionnait très bien. J'ai ensuite utilisé Google Closure pour empaqueter le JavaScript de mon site avec TinyMCE_src

Le problème que j'ai, c'est que TinyMCE appelle maintenant:

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

Et que les chemins qui sont utilisés ne sont pas valides, ils sont 404

Comment puis-je dire à TinyMCE où aller pour obtenir ces fichiers?

J'ai essayé:

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

Mais ils n'ont aucun effet sur les fichiers ci-dessus.

Conseiller? Merci

54
AnApprentice

J'ai eu le même problème, et il aurait pu être résolu facilement si nous avions pu spécifier base url en utilisant document_base_url.

Alternativement, j'ai pu spécifier l'URL de base avant d'initialiser tinymce.

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

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

TinyMCE fonctionne bien maintenant.

89
Rakesh

Selon ceci: 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("\/\/", "\/"),
   ...

Mais, il faut faire attention aux chemins. Avec de l'aide document.location.pathname J'ai le répertoire racine du projet. Remplacer la fonction nécessaire pour remplacer la double barre oblique par une barre oblique simple, car un serveur différent peut retourner "... // serveur/site" OR "... // serveur/site /" et il peut be: "... // serveur/site/js ..." OR "... // serveur/site // js ...".

9
Chaki_Black

Vous pouvez remplacer l'URL de base de tinyMCE en plaçant le code suivant avant d'initialiser tinyMCE.

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

Ceci est utile si vous avez déjà chargé tinyMCE à partir d'une source fusionnée et que le chemin de base n'est pas trouvé correctement.

9
Stefaan Colman

Si vous utilisez le plugin TinyMCE jQuery, vous pouvez tout charger à partir d'un emplacement distant, ajoutez simplement le script_url paramètre dans votre code init. Il chargera tout à partir de là, y compris les scripts/images/etc.

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

Découvrez ce violon, il inclut le tout à distance depuis le site Web de TinyMCE: http://jsfiddle.net/xgPzS/22/

5
DarthJDG

Selon la documentation de TinyMCE 4.x, vous pouvez spécifier l'URL de base du document lors de l'initialisation.

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

si vous utilisez CodeIgniter, utilisez simplement base_url()

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

Rappelez-vous: relative_url Doit être vrai pour fonctionner parfaitement, sinon vous obtiendrez des URL absolues.

Pour plus de détails: http://www.tinymce.com/wiki.php/Configuration:document_base_url

2
Adnan

Bundle tout en utilisant grunt (instructions sur github ) alors il vous suffira de configurer d'où charger tous les css en utilisant l'option skin_url

tinymce.init({skin_url: window.location.Origin + '/css/tinymce'})
2
cleison