我第一次使用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的引用......
我想做的是可行的,如果是的话,我在这里失踪了什么?我期待这很简单。
作为一种解决方法,我可以添加一些路由规则,将相关请求重定向到其他位置,但在此之前我宁愿深入研究问题。
更多信息:
答案 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/';