safeLab(7)记录---从数据库中取内容并用kindeditor显示
作者:互联网
springboot使用kindeditor富文本编辑器遇到的问题及解决方案:
问题:
- springboot如何调用kindeditor?
- 集成kindeditor后,前端富文本编辑框无法显示,后端控制台提示:“该请求无权限,重定向到无权限提示页面,url=/kindeditor/themes/default/default.css”
- 由于数据库中通过kindeditor保存的内容中img的路径是/images/.....,而我们将图片存到了/static/admin/images中,导致图片加载不出来
解决方案:
-
<!-- 富文本编辑器,下载好kindeditor后复制粘贴到项目中,然后在需要使用富文本编辑的页面导入所需要的脚本和css库 --> <link rel="stylesheet" href="/sell/kindeditor/themes/default/default.css"/> <script charset="utf-8" src="/sell/kindeditor/kindeditor-all.js"></script> <script charset="utf-8" src="/sell/kindeditor/lang/zh-CN.js"></script> //初始化KindEditor编辑器 <script type="text/javascript"> var editor; KindEditor.ready(function (K) { editor = K.create('textarea[name="content"]', { //是否允许浏览服务器已上传文件,默认是false allowFileManager: true, uploadJson :"/sell/speech/uploadFile" }); }); </script> <!--结合<textarea>标签使用--> <div class="input-group m-b-10"> <span class="input-group-addon">实验环境</span> <textarea style="width: 979px; height: 137px;" id="ambient" name="ambient" type="text" class="form-control" > <#if courseDl.experimentAmbient??> ${courseDl.experimentAmbient!''} </#if> </textarea> </div>
- 无权限是由于后台定义了拦截器,kindeditor相关资源没有放行,做法就是在RuntimeConstant.java类中的权限无需拦截列表中加上
"/admin/kindeditor/**"
这里多说一句,项目使用的权限拦截器拦截原理是:实现了HandlerInterceptor接口,通过将欲访问的url与用户角色具有的权限中的url进行对比,用户不具有权限的URL不会放行;自动放行的URL放在了RuntimeConstant.java中
//无论是放行路径,还是具体拦截方法,都需要通过这个拦截器配置类生效 @Configuration public class WebConfig implements WebMvcConfigurer { @Autowired private LoginInterceptor loginInterceptor; @Autowired private AuthorityInterceptor authorityInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns(RuntimeConstant.loginExcludePathPatterns); registry.addInterceptor(authorityInterceptor).addPathPatterns("/**").excludePathPatterns(RuntimeConstant.authorityExcludePathPatterns); } }
-
由于修改数据库太麻烦,于是决定将图片直接存放在/static/images,但过程遇到了图片依旧无法加载的问题!为什么呢?
仔细一想还是因为权限问题,新的图片路径在拦截器中没有放行! 于是在RuntimeConstant.JAVA中添加了 /images/** 进行权限放行
至此已经完成富文本编辑器的显示功能
标签:safeLab,kindeditor,---,拦截器,放行,images,权限,RuntimeConstant 来源: https://blog.csdn.net/HUGEJOKER/article/details/116396423