2013-03-09 51 views
4

我正在开发一个使用ASP.NET MVC 4的Web应用程序,我正尝试使用CKEditor进行一些内容编辑。
在调试一切,只要能正常工作,因为没有bundeling或缩小时发生的事情,但只要这样做的CKEditor产生错误的网址,即使我已经设置baseHref:CKEditor baseHref不工作和编辑器不工作后缩小/ bundeling

CKEDITOR.replace('ckeditor', 
{ 
    autoUpdateElement: true, 
    baseHref: '@Url.Content("~/Scripts/ckeditor/")', 
    filebrowserImageUploadUrl: '/Uploads/Upload' 
}); 

在调试以下包括:

<script src="/Scripts/ckeditor/ckeditor.js"></script> 

而且bundeling后/ minifaction它仅仅是:

<script src="/bundles/ckeditor?v=dLE-_JqB4vxXJ9idGep_8yUL8KfOwGhfYoEZAeIudoE1"></script> 

,并改掉加载以下JS文件S:

http://DOMAIN.net/CONTROLLER/ACTION/config.js?t=D26D 

哪项是错误的,因为它应该是:

http://DOMAIN.net/Scripts/ckeditor/config.js?t=D26D 

有谁知道我在做什么错误或如何解决这一问题?
另外我也可以禁用bundeling/minification,以避免这个问题。

回答

4

我有类似的问题,但发现这个工作。将其包含在cshtml布局文件中。

<script> 
    CKEDITOR.basePath = "@Url.Content("~/lib/ckeditor/")"; 
</script> 

或使用jQuery

$(document).ready(function() { 
    CKEDITOR.basePath = "@Url.Content("~/lib/ckeditor/")"; 
}); 
+0

我不工作,因为如果我包括ckeditor.js'CKEDITOR'没有定义,并且已经是晚期... – ChrFin 2013-03-24 18:19:33

+0

后看到之前做到这一点JQuery版本 - 可能有帮助。记住脚本标签。 – bluee 2013-03-25 19:30:08

+0

已经尝试过 - 同样的问题... – ChrFin 2013-03-25 19:53:43

0

我发现,类似的方法来@bluee为我工作:

我把我的CSHTML布局文件如下:

<script type="text/javascript">CKEDITOR_BASEPATH = "@Url.Content("~/Scripts/ckeditor/")";</script> 
    @Scripts.Render("~/Scripts/ckeditor/ckeditor.js") 

的细微差别使用CKEDITOR_BASEPATH而非CKEDITOR.basePath之中。这解决了'CKEDITOR未定义'的问题。

0

我遇到了同样的问题。事实上,捆绑系统会加重ckeditor的负担。所以,你可以避开它执行以下操作:

@Scripts.Render("~/bundles/jquery") 
@Scripts.Render("~/Script/CKEditor/ckeditor.js") 
@Scripts.Render("~/Script/CKEditor/adapters/jquery.js")