ckeditor - 从错误的 URL 加载语言 JS 文件

Ron*_*Ron 2 javascript internationalization ckeditor

我正在使用最新版本(4.7.0)的ckeditor.

我通过安装它npm,它位于常规前端内(没有花哨的 js 框架)。

问题:翻译 js 文件 - 我的情况是“de.js”是从错误的 URL 加载的。

当我检查代码时,我在代码中看到以下内容:

CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+a+".js"),f,this)
Run Code Online (Sandbox Code Playgroud)

它仅添加lang/de.js到我当前的网址,而不是转到我的静态文件夹。

我的配置如下:

CKEDITOR.editorConfig = function (config) {
config.toolbar = 'Custom';

config.toolbar_Custom = [

{
  name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Styles',
  'Format', 'NumberedList', 'BulletedList', 'Undo', 'Redo', 'Image',   'Smiley'],
 },
];
config.extraPlugins = 'clipboard,dialog,uploadimage,uploadfile';
config.imageUploadUrl = '/uploader/';
config.uploadUrl = '/uploader/';    
};
Run Code Online (Sandbox Code Playgroud)

我尝试添加:

config.baseHref = '/static/ckeditor/';
Run Code Online (Sandbox Code Playgroud)

config.path = '/static/ckeditor/';  
Run Code Online (Sandbox Code Playgroud)

config.basepath = '/static/ckeditor/'; 
Run Code Online (Sandbox Code Playgroud)

但代码仍然是从相对 URL 加载的。

有谁知道如何正确配置编辑器,使其不会从(错误的)相对路径加载文件?

谢谢

罗恩

更新:

这是我的配置文件,我通过参数添加它customConfig

CKEDITOR.editorConfig = function( config ) {
 config.toolbar = 'Custom';

  config.toolbar_Custom = [

    {
      name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Styles',
      'Format', 'NumberedList', 'BulletedList', 'Undo', 'Redo', 'Image', 'Smiley'],
    },
  ];
  config.extraPlugins = 'clipboard,dialog,uploadimage,uploadfile';
  config.imageUploadUrl = '/uploader/';
  config.uploadUrl = '/uploader/';
  config.basePath = '/static/ckeditor/';
};
Run Code Online (Sandbox Code Playgroud)

f1a*_*mes 5

CKEDITOR.basePath一个定义:

CKEditor 安装目录的完整 URL。

因此,如果设置了此配置选项,CKEditor 加载的文件的路径将基于此。


您还可以使用window.CKEDITOR_BASEPATH(详细说明请参阅此答案):

可以通过设置名为 CKEDITOR_BASEPATH 的全局变量来手动提供基本路径。该全局变量必须在编辑器脚本加载之前设置。


这两个中的任何一个都应该可以解决您的问题,只需使用:

CKEDITOR.basePath = '/static/ckeditor/';
Run Code Online (Sandbox Code Playgroud)

或者

window.CKEDITOR_BASEPATH = '/static/ckeditor/';
Run Code Online (Sandbox Code Playgroud)

当通过任何模块加载器(如 browserify)加载 CKEditor 时,第二个很有用。如果您的情况并非如此,那么第一个选项就足够了。