2013-03-09 74 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")