1. 配置问题
1.1. 代码生成器图片、附件组件提示undefined/upload/...
规范项目名路径变量,参考下图路径head-file文件,在src/main/webapp/WEB-INF/manager/include/下创建head-file文件
将会在5.4.4版本更新处理
并添加ms.contextpath变量定义
...
ms.base = "${base}";
// 添加ms.contextpath
ms.contextpath = "${base}";
ms.login = "${managerPath}/login.do";
ms.manager = "${managerPath}";
ms.web = ms.base;
...
1.2. yml配置问题
1.2.1. 自定义ms.manager.path和ms.manager.login-path问题
- 修改ms.manager.path 不能修改为cms、mcms等和web层接口重名冲突的名称
- 修改login-path 需要有一个登录地址和配置的login-path对应上
1.2.2. swagger文档
开启swagger:修改yml中,springfox.documentation.auto-startup和springfox.documentation.enabled为true
关闭swagger和api-doc:修改yml中springfox.documentation.auto-startup为false
1.2.3. 上传的文件可能存在攻击处理
eg:上传html存在js攻击
解决方式:通过yml配置中upload.denied添加html,禁止html上传
1.2.4. 启动报java.nio.charset.MalformedInputException: Input length = 2
产生原因:中文字符导致
快速解决方法,将yml中的中文注释全部删除
规范:禁止使用文本编辑器来修改配置文件,避免导致编码问题;推荐在ide中修改好
1.2.5. 需要让标签生成域名解析为https
代理应用时标签解析域名依旧为http时,首先需要确认yml配置中 ms.scheme为https,然后应用设置保存、刷新缓存,再重新静态化。
1.2.6. 添加项目名后预览页面404,页面路径缺少项目名
出现这种情况可能是用户部署在Tomcat上加了项目名,没有在yml文件里配置,需要在yml里也进行配置, 并确保和Tomcat上项目名一致。
[!tip] 由于添加了项目名称,在模板中所有涉及资源的引入路径(如js、css文件、图片等)也应该加上项目名称,即加上标签:{ms:global.contextpath/}
1.2.7. 复制富文本图文,更换上下文后导致图片不显示问题
上下文:在这里指项目名称,没有设置项目名称就为空
第一步:通过编辑器的查看源代码功能,确定当前内容中图片路径是(上下文)/upload格式,否则说明图片没有上传成功。
第二步:由于图片链接是作为文本数据存在数据库中的,由于更换了上下文,导致原来的存储的图片路径在新的上下文中链接失效。可以写个脚本把数据库中新、旧上下文进行replace0
1.2.8. 超过1分钟,显示数据库链接超时
可以延长数据库最大等待时间,修改yml中spring.datasource.druid.maxWait的配置
1.2.9. 百度编辑器上传图片一直在加载
将yml中ms.upload.enable-web设置为true
1.2.10. 模板文件太大造成上传模版失败
可能由于上传文件过大导致,修改application.yml文件
1.3. xml配置问题
1.3.1. 站群插件未生效
站群的依赖需要放到pom文件中依赖的第一位,因为站群插件重写了basic, 不放在第一位可能会导致站群不生效的情况。
1.4. 自定义配置问题
1.4.1. 请求地址:http://localhost:8080/xxx/cms/content/list.do 当前操作存在sql注入风险,bad sql word:xxxxxx
因为修改了yml中的ms.manager.path,需要同步修改 安全设置 》 XSS过滤器配置中把ms替换成修改后的ms.manager.path
[!tip] 注意,修改xss后需要重启服务才生效
1.4.2. sql注入问题,xss配置说明
MCms因为后台后台一些业务必须要使用到 ${} 来动态构建SQL语句,导致一些检测误认为系统存在 SQL 注入问题,实际上系统对请求的参数都已经做SQL 注入检测,只需要开启就可以防止注入问题。
- 开源版本开启配置参考
先更新到最新版本,删除排除路径中有关/ms/,/此类路径,也可以单独设置排除路径
- 其他版本开启配置参考
启用xss过滤器,并删除排除路径中有关/ms/**
,/**
此类路径,也可以单独设置排除路径
排除路径:添加排除路径后,则不会对该请求的参数做xss校验
排除字段:请求中的某个参数会触发xss,将触发xss的请求参数添加到排除字段中,则不会对该请求参数做xss校验
[!tip] 由于自定义会有动态修改表的操作和关键字,如果上线后仍需要使用自定义相关功能,建议加上/ms/mdiy/**的配置;其他功能添加配置和自定义一样
1.5. 业务数据配置问题
1.5.1. 定时调度任务执行失败
通常是由于任务没有正确配置参数导致的,例如生成首页, 调用目标:generaterServiceJob.index('index.htm','index.html','outsite','http://localhost/') 这里第一个参数'index.htm'指的是对应模板文件; 第二个参数'index.html'指的是主页文件名; 第三个参数'outsite'指的是自定义字典中设置模板类型数据值; 最后一个参数'http://localhost/'指的是调用本机。 需注意第三个参数填写正确,选择正确的模板类型。
1.5.2. 更换域名后页面仍然显示ip地址
页面标签 {ms:global.url/}、{ms:global.host/}是从 APP 表中取地址字段进行渲染。 第一步:确认当前用域名登录后台,然后只需要在应用设置里保存一下,不需要做任何操作就可以更新地址字段。 第二步:确认 APP 表中地址字段app_url修改成域名,然后重新静态化。 第三步:确保静态化操作没问题,刷新页面就可以了(没效果强刷下页面)。
[!tip] 简单调试办法,首页模板只留{ms:global.url/}、{ms:global.host/},查看输出结果是否正确。 注意:若出现文章点击数失效的问题,在缓存管理里刷新缓存重新静态化即可。
1.6. idea配置问题
1.6.1. 启动系统后台部分页面报404错误原因分析
情况1. 代码可能没有编译,重新clean,compile 判断是否编译小技巧:debug模式启动项目,打断点,只有圆圈没有勾,没有编译 情况2. 地址正确,对应的页面资源缺少,按需补充视图文件 情况3. pom依赖下排除了src/main/webapp目录文件,注释就行 情况4. 如果你代码是最新的,那应该是你数据库导入错了,直接导入最新版本的数据就可以了
1.6.2. idea使用Tomcat开发,上传模板重启后模板消失
因为是上传到Tomcat内置的环境,重启Tomcat默认清理所有文件导致文件消失,解决方案:
1.开发过程中模板直接放在项目中,不要通过上传的方式放进去
2.上传的模板可以在重启之前,从Tomcat里面复制出来到项目中
1.6.3. 启动时报缺少某个类,创建bean对象失败
可能是没有编译到,先重新clean、compile试一下,还是不行的话那就清除下idea缓存再maven强制更新一下
1.6.4. idea Tomcat 配置
1.6.5. 启动es依赖报找不到org.elasticsearch.xcontent.ToXcontent0bject的类文件错误
解决方法
- 删除在该仓库下的org.elasticsearch文件夹
- maven配置中央仓库拉取依赖(不能使用阿里云镜像,尽量使用国外的)
- 重新拉取依赖,在仓库中找到es相关依赖并且版本对应
- idea中刷新一下maven
1.6.6. 启动报错error creating bean with name "customMultipartResolver".
情况1 第一次启动报错
解决办法
- 删除在该仓库下的net.mingsoft文件夹
- maven配置中央仓库,重新拉取依赖(不能使用阿里云镜像!)
情况2 jar启动报错
1.首先看本地ide启动是否正常,本地不正常请参考情况1 2.把config文件中的配置与ide中resource文件夹下的同步
1.7. 修改config配置未生效
config配置以mcms下的配置为标准,它会覆盖其他配置导致出现修改配置没有生效的问题。
1.8. mysql8.0驱动报错
需要使用jdk8 以上版本
1.9. 包有错误且中文是乱码
项目右键属性窗口,配置项目编码格式为UTF-8