CKEditor - 在其他地方移动皮肤文件夹

时间:2013-07-25 16:00:33

标签: asp.net-mvc ckeditor

我第一次使用CKEditor并尝试做一些我认为很简单的事情,但到目前为止我没有成功。

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

该应用程序包含一个简单的视图,可以在加载时显示编辑器。

显示编辑器的代码如下:

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应用程序。
  • 我正在引用角度,因为一旦我对此问题进行了排序,我就会使用它。我已经尝试删除所有对angular的引用,但问题仍然存在。
  • 我尝试过以下方式设置contentsCss属性:
    • 直接使用CKEDITOR.config.contentsCss
    • 在config.js文件中。该示例为CKEDITOR.editorConfig分配了一个匿名函数,在那里你可以操作congif条目。
    • 在CKEditor对象上调用“replace”方法时传递config参数。
    • 我尝试在调用replace之前和之后操作contentsCss属性。
  • 我使用的是最新版本的CKEditor(4.2)

2 个答案:

答案 0 :(得分: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可能会附加skins / mooono本身,但它不会。)

我还发现你必须在网址中加入最后的'/'。

答案 1 :(得分:3)

查看the documentation,您需要将路径指定为外观名称的一部分:

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