4

我正在使用 ASP.NET MVC 4 开发一个 Web 应用程序,并且我正在尝试使用 CKEditor 进行一些内容编辑。
在调试中,只要没有发生捆绑或缩小,一切都可以正常工作,但是一旦发生这种情况,即使我设置了 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

有谁知道我做错了什么或如何解决这个问题?
或者,我也可以禁用该捆绑包的捆绑/缩小以避免该问题。

4

4 回答 4

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。

于 2013-05-05T13:36:45.020 回答
4

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

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

或使用 JQuery

$(document).ready(function() { 
  CKEDITOR.basePath = "@Url.Content("~/lib/ckeditor/")"; 
});
于 2013-03-24T13:50:47.613 回答
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 未定义”问题。

于 2014-06-19T01:18:04.273 回答
0

我遇到了同样的问题。事实上,bundle 系统给 ckeditor 加载带来了麻烦。所以你可以避免它做以下事情:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/Script/CKEditor/ckeditor.js")
@Scripts.Render("~/Script/CKEditor/adapters/jquery.js")
于 2016-03-30T21:07:35.677 回答