CKEditor 4.8.0自定义contentsCss样式不加载问题求助
嘿,我之前也踩过CKEditor样式加载的坑,结合你的配置,这几个方向可以重点排查:
确认
stylesheetparser插件是否正常加载
你虽然在配置里加了extraPlugins: 'stylesheetparser',但这个插件可能没被正确加载。可以打开浏览器控制台,输入CKEDITOR.instances[你的编辑器ID].plugins.get('stylesheetparser'),如果返回undefined,说明插件没加载成功。这时候要检查:- 你的CKEditor安装包是否包含这个插件(有些自定义构建的CKEditor会默认移除它);
- 插件路径配置是否正确,比如
config.pluginsPath有没有指向正确的插件目录。
检查
stylesSet配置的影响
你设置了config.stylesSet = 'default',默认样式集可能会自带一些样式规则,优先级可能比你自定义的custom_styles.css更高。可以试试把stylesSet改成空数组[],或者自定义一个样式集,看看自定义样式会不会生效。比如:config.stylesSet = []; // 禁用默认样式集CSS选择器优先级冲突
CKEditor默认的contents.css里的选择器可能比你写的更具体,导致你的样式被覆盖。比如默认的.cke_contents p优先级就比单纯的p高。你可以:- 用更具体的选择器,比如
.cke_contents .custom-paragraph; - 临时给样式加
!important测试(比如p { color: red !important; }),如果生效了,就说明是优先级的问题,再调整选择器即可。
- 用更具体的选择器,比如
验证自定义CSS文件的请求状态
虽然你说路径正确,但还是建议打开浏览器的「网络」面板,找到custom_styles.css的请求,确认它的状态码是200,并且响应内容是你写的自定义样式。如果是404,那就是路径问题——比如你的项目部署在子目录下,绝对路径/static/...可能指向了错误的位置,这时候可以改成相对路径试试,比如../static/ckeditor/custom/custom_styles.css。排除其他插件的干扰
你配置了autoGrow_MaxHeight,虽然这个插件和样式加载关联不大,但可以暂时注释掉autoGrow相关的配置,重新初始化编辑器,看看样式会不会生效,排除插件冲突的可能。
内容的提问来源于stack exchange,提问作者Ron

