CKEditor base Href无法正常工作,编辑器在缩小/捆绑后无法正常工作

时间:2013-03-09 22:02:46

标签: javascript .net asp.net-mvc asp.net-mvc-4 ckeditor

我正在使用ASP.NET MVC 4开发Web应用程序,我正在尝试使用CKEditor进行一些内容编辑。
在调试中,只要没有发生Bundeling或minification,一切正常,但是即使我设置了baseHref,CKEditor也会生成错误的URL:

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

在调试中包括以下内容:

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

在结束/小型化后,它只是:

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

并尝试加载以下JS文件:

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

它应该是错误的:

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

有谁知道我做错了什么或如何解决这个问题?
或者我也可以为这一个捆绑禁用Bundeling / minification以避免这个问题。

4 个答案:

答案 0 :(得分:10)

在包含ckeditor的js文件之前,尝试添加以下内容:

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

更多信息:http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Specifying_the_Editor_Path

它也适用于ckeditor 4.x。

答案 1 :(得分:4)

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

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

或使用JQuery

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

答案 2 :(得分: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未定义'的问题。

答案 3 :(得分:0)

我遇到了同样的问题。实际上,捆绑系统会对ckeditor加载造成麻烦。因此,您可以避免它执行以下操作:

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