我正在使用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以避免这个问题。
答案 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")