TinyMCE 从不正确的目录加载 lang/plugins/theme

Posted

技术标签:

【中文标题】TinyMCE 从不正确的目录加载 lang/plugins/theme【英文标题】:TinyMCE loading lang/plugins/theme from incorrect directory 【发布时间】:2011-11-11 15:02:44 【问题描述】:

我在使用 TinyMCE 时遇到问题。在搜索语言、主题和插件时,它应该在基本脚本文件所在的目录中查找。但是,它没有这样做,而是使用当前加载的页面作为搜索的根。我正在查看 src 文件中的“loadScripts”函数,但更改路径似乎没有提供任何有意义的效果。

这是未经修改的 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】:

我正在/正在使用的“单页”应用程序遇到同样的问题。为 tinymce 加载 JS 的 JS 位于其他目录中,这给了我你所说的同样的问题。

我在这里学到的一些东西可能会对你有所帮助。

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

如果您遇到这些问题,“base”参数至关重要。

另外,我使用的是 jquery 插件。但是,如果您手动包含 jquery 插件和 tinymce,则 jquery 插件的 script_src 似乎会被忽略。由于某些未知原因,这也很重要。

最后,就我而言,我使用后缀作为缓存清除的一部分。当我们进行构建时,所有的 JS 和 CSS 文件都会在文件扩展名之前添加一个哈希。不幸的是,我认为 tinymce 开发人员对后缀设置有不同的想法,因此 lang 和模板 css 文件不遵守它,导致 404。快速修复 lang 的方法是将语言参数设置为 'en_1',其中 '_1" 是 cacehbuster 后缀。最后,我必须手动编辑主题文件以包含 tinymce.suffix 参数。

希望对您有所帮助。我花了6个小时才达到这一点。

【讨论】:

以上是关于TinyMCE 从不正确的目录加载 lang/plugins/theme的主要内容,如果未能解决你的问题,请参考以下文章

jQuery - 在 tinyMCE 所见即所得中选择元素

为动态加载的新元素添加 tinymce

以编程方式将数据加载到 TinyMCE

为什么Tinymce第二次无法加载?

我的 CSS 代码在 TinyMCE 中没有正确读取

当我通过 jQuery .load() 加载 tinyMCE 时浏览器冻结