TinyMCE загружает lang / plugins / theme из неверного каталога - PullRequest
3 голосов
/ 06 сентября 2011

У меня проблемы с TinyMCE. Когда он ищет lang, theme и plugins, он должен искать в каталоге, где находятся файлы базовых скриптов. однако вместо этого он использует текущую загруженную страницу в качестве корня для поиска. Я смотрю на функцию «loadScripts» в файле src, но изменение пути, по-видимому, не дает никакого значимого эффекта.

Вот немодифицированная функция loadScripts для вашего обзора:

// Load scripts
        function loadScripts() {
            if (s.language)
                sl.add(tinymce.baseURL + '/langs/' + s.language + '.js');

            if (s.theme && s.theme.charAt(0) != '-' && !ThemeManager.urls[s.theme])
                ThemeManager.load(s.theme, 'themes/' + s.theme + '/editor_template' + tinymce.suffix + '.js');

            each(explode(s.plugins), function(p) {
                if (p && p.charAt(0) != '-' && !PluginManager.urls[p]) {
                    // Skip safari plugin for other browsers
                    if (!isWebKit && p == 'safari')
                        return;

                    PluginManager.load(p, 'plugins/' + p + '/editor_plugin' + tinymce.suffix + '.js');
                }
            });

            // Init when que is loaded
            sl.loadQueue(function() {
                if (!t.removed)
                    t.init();
            });
        };

        loadScripts();
    }

1 Ответ

7 голосов
/ 01 декабря 2012

У меня возникла такая же проблема с приложением «на одной странице», над которым я работаю. JS для загрузки JS для tinymce находится в каком-то другом каталоге, и это вызывало у меня ту же проблему, о которой вы говорили.

Здесь я выучил пару вещей, которые могут вам помочь.

  window.tinyMCEPreInit = {
      suffix : '_1',
      base : '/static/js/plugins/tiny_mce', // your path to tinyMCE
      query : 'something'
  };

Аргумент 'base' крайне важен, если вы сталкиваетесь с этими проблемами.

Кроме того, я использовал плагин jquery. Однако, если вы вручную включите как плагин jquery, так и tinymce, то script_src плагина jquery будет игнорироваться. Это тоже важно по неизвестной причине.

Наконец, в моем случае я использую суффикс как часть нашей очистки кеша. Когда мы делаем сборку, все файлы JS и CSS имеют хэш, добавленный перед расширением файла. К сожалению, я думаю, что разработчики tinymce имели в виду другую идею для настройки суффикса, и поэтому файлы lang и template css не подчиняются ей, что приводит к 404-м. Быстрое исправление для lang состояло в том, чтобы установить языковой аргумент 'en_1', где '_1' - суффикс cacehbuster. Наконец, мне пришлось вручную редактировать файлы темы, чтобы включить аргумент tinymce.suffix arg.

Надеюсь, это поможет вам. Мне потребовалось 6 часов, чтобы добраться до этой точки.

...