2013-07-25 33 views
1

我第一次使用CKEditor并尝试做一些我认为会很简单的事情,但到目前为止我没有成功。CKEditor - 将皮肤文件夹移动到其他地方

本质上我想将editor.js,config.js和styles.js放在脚本文件夹中,但希望包含css和图像的“外壳”文件夹出现在单独的“样式”文件夹中。

该应用程序由一个简单的视图组成,该视图在加载时显示编辑器。

显示编辑器的代码是一个如下:

angular.element(document).ready(function() { 
    CKEDITOR.config.contentsCss = '/Styles/CKEditor/'; 
    CKEDITOR.replace('editor'); 
}); 

我的视图中的HTML如下:

@section scripts 
{ 
    <script src="~/Scripts/ckeditor.js" type="text/javascript"></script> 
    <script src="~/Scripts/angular.js"></script> 
    <script src="~/Scripts/Main.js" type="text/javascript"></script> 
} 

<h2>Index</h2> 

<textarea id="editor" name="editor"></textarea> 

这是MVC应用程序和脚本在端呈现在布局视图内的身体。

编辑器不会在任何浏览器中显示。据我了解,设置contentsCss属性应该可以做到。

如果我把皮肤放在我的脚本文件夹下面,它工作正常。我可以在生成的源代码中看到它正在添加指向/ Scripts/Skins/moono ...的标题的链接,但我希望它添加对/ Styles/Skins/moono的引用...

是我正在努力做到的,如果是的话,我在这里想念什么?我期待这很简单。

作为一项解决方案,我可以添加一些路由规则,将相关请求重定向到不同的位置,但我宁愿在执行此操作之前先查看问题的底部。

进一步的信息:

  • 我的应用程序是一个ASP.net 4.5/MVC 4应用程序。
  • 我引用的角度,因为我将使用,一旦我已经排序此问题。我试图删除所有引用角度,但问题仍然存在。
  • 我试着用以下方法设置contentsCss属性:
    • 直接使用CKEDITOR.config.contentsCss
    • 在config.js文件。该示例将一个匿名函数分配给CKEDITOR.editorConfig,并且在那里您可以操作congif条目。
    • 在调用CKEditor对象的“替换”方法时传递一个配置参数。
    • 我试过在调用替换之前和之后操纵contentsCss属性。
  • 我使用的是最新版本的CKEditor(4.2)

回答

4

感谢@Richard Deeming,我找到了答案。

我使用的是默认moono风格,所以我需要设置CKEDITOR.config.skin属性如下:

CKEDITOR.config.skin = 'moono,/Styles/CKEditor/Skins/moono/' 

我的最终代码现在看起来像这样:

angular.element(document).ready(function() { 
    CKEDITOR.config.skin = 'moono,/Styles/CKEditor/Skins/moono/'; 
    CKEDITOR.replace('editor'); 
}); 

你必须将url设置为包含皮肤本身的实际文件夹(我认为CKEditor可能会附加皮肤/ mooono本身,但它不会)。

我还发现你必须在URL中包含最后的'/'。

3

望着the documentation的,你需要指定路径作为皮肤名称的一部分:

CKEDITOR.skinName = 'CKeditor,/Styles/CKeditor/'; 
+0

嗨,理查德。谢谢你的回应。我已经尝试过,但是你的回答促使我再次尝试,并将我引导至我将在一分钟后发布的答案。 – Kenspeckle

相关问题