Asp.net mvc “编辑图像”对话框失败

Asp.net mvc “编辑图像”对话框失败,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,ckeditor,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Ckeditor,我在.NETMVC4项目中与CKEditor合作。在localhost上,所有这些都可以正常工作,但在将项目发布到服务器后,没有初始化: "Uncaught TypeError: Cannot set property 'dir' of undefined" 我通过在编辑器初始化之前添加代码行修复了此问题: CKEDITOR.basePath='//某些url/CKEDITOR/' 之后,ckeditor正在工作,但拒绝打开图像上载对话框: ckeditor插件image.js中出错 Un

我在.NETMVC4项目中与CKEditor合作。在localhost上,所有这些都可以正常工作,但在将项目发布到服务器后,没有初始化:

"Uncaught TypeError: Cannot set property 'dir' of undefined"  
我通过在编辑器初始化之前添加代码行修复了此问题:

CKEDITOR.basePath='//某些url/CKEDITOR/'

之后,ckeditor正在工作,但拒绝打开图像上载对话框:

ckeditor插件image.js中出错

Uncaught Error: [CKEDITOR.dialog.openDialog] Dialog "image" failed when loading definition. 
我的ckeditor文件夹中没有任何更改。版本为:4.4.5


有什么解决方案吗?

请检查浏览器中的“网络”选项卡,查看HTTP 404错误。似乎包含图像对话框定义的文件不可用。要么它不存在(例如,被意外删除),要么你有一些奇怪的url重写问题。

检查你的
CKEDITOR。basePath
plugins文件夹图像插件在那里,如果没有,那么添加它,wala就像一个魔咒一样工作!希望有帮助

发行 从4.13开始,仅在服务器上包含
ckeditor.js
(或
ckeditor4.js
)文件会导致此错误,当CKE尝试加载插件和语言等其他功能,但在basepath文件夹中找不到这些文件时,会引发此错误。您可以在浏览器devtools中的“网络”选项卡中确认这一点,因为CKE尝试加载功能,但找不到这些功能

选项1:链接到CDN捆绑包 CKE提供3个主要捆绑包(基本、标准、完整),可在功能和页面加载之间进行选择

选项2:包括必要的文件 使额外的文件在服务器上可用。 这里有一个gulp任务,它捆绑了来自ckeditor节点模块文件夹(不包括示例)的所有内容

选项3:构建并托管您自己的定制包 如果要使用单个文件加载,可以使用允许自定义内置插件的

gulp.task("copy-ckeditor", function () {
    // Check and copy languages in config.ckEditorLanguages
    var isIncluded = function(path) {
        var found = false,
            lang = path.split('lang')[1];

        if (lang) {
            for (var i in config.ckEditorLanguages) {
                if (lang.indexOf(config.ckEditorLanguages[i]) != -1) {
                    found = true;
                }
            }
        }
        return found;
    },
    copyFile = function(stream) {
        stream.pipe(gulp.dest(config.buildPath.js + "lib/ckeditor"));
    };

    return gulp.src([
            "node_modules/ckeditor/**/*.*",
            "!node_modules/ckeditor/samples",
            "!node_modules/ckeditor/samples/**/*"
        ])
        .pipe(foreach(function(stream, file){
            if (file.path.indexOf("lang") != -1) {
                if (isIncluded(file.path)) {
                    copyFile(stream);
                }
            } else {
                copyFile(stream);
            }
            return stream;
        }));
});