1. 功能问题
1.1. 静态化未达预期效果排查方式
· 优先本地启动项目,线上环境复杂,如果已经发布还容易破坏生产环境;确保数据是一致的,代码没有差异。
· 本地启动后如果并未复现问题,可能是线上环境问题,例如服务器没有文件写入权限导致静态化文件未生成或者文件访问权限不足等。
· 本地问题与线上一致,就需要排查是数据问题还是模板问题,排查技巧为:先清空html静态文件夹,逐个栏目生成来定位是哪个栏目出现的问题。
· 定位到某个栏目后,可以先逐渐删除模板内容,减少日志生成,通过日志中的sql执行和log信息结合来判断问题原因。
· 其中数据问题一般是由非法直接导入数据产生,这类问题占比较少,通常是因为缺少必要关键字段如文章更新时间等导致的静态化失败。
· 模板问题种类繁多,占比量很高,常见原因有:模板代码有语法问题;模板丢失;错误绑定了一个不存在的模板等等。
[!tip] 比较棘手的问题一般都是由于环境等第三方问题导致,需要开发者结合日志冷静分析。
1.2. 静态化链接跳转异常问题
· 遵守规范,确保链接以单"/"开头
· 当链接以双斜杠(//)开头时,浏览器会根据当前页面的协议(http或https)自动补充协议部分,而不会在前面拼接当前IP地址。这种链接称为“协议相对URL”,它会根据页面的协议自动选择相应的协议进行请求。
· 当前页面的URL结尾缺少"/",而链接中的href值也不是以"/"开头的相对路径,浏览器可能会错误地将链接解释为相对于当前路径的路径,而不是相对于根路径的路径。这可能导致链接中第一个层级被错误地添加到当前路径中。
1.3. 静态化控制台有异常的处理
企业版、政务版,优先在系统设置-》缓存管理处刷新缓存,再重新静态化看效果
模板标签有语法错误,根据异常堆栈信息,定位模板文件,逐个标签删除来定位错误标签
1.4. 静态化生成爆空指针问题
- 一般都是栏目没有绑定模板问题,非叶子节点的栏目,需要绑定列表模板,如果是叶子节点的栏目,需要绑定列表模板和文章内容模板
- 模板标签有语法错误,根据异常堆栈信息,定位模板文件,逐个标签删除来定位错误标签
1.5. 上传文件类型问题
上传是通用功能,根据系统后台配置限制可上传的文件类型
关于修改文件后缀可上传问题,部分用户反馈将html后缀改成jpg后,可上传问题
这里提供两种方案
需要限制该处只允许某种类型,需要自行新增扩展上传方法;文件类型基本校验系统都已提供,如果上传篡改文件需要获取文件真实类型,可以通过工具类或自行实现读取文件的方式(https://www.cnblogs.com/ryelqy/p/10104171.html 第三点)
需要上传文件确保系统安全,可以通过系统提供的xss对上传文件内容过滤
1.6. 上传大文件说明
不推荐通过系统上传大文件,毕竟不是流媒体系统,不支持断点续传等功能,不能确保数据稳定传输;
小文件可以通过编辑器上传;大文件推荐通过ftp上传到服务器中(推荐按照规定路径放置,注意文件名称不要含有中文和特殊字符)获取文件的路径,然后在上传视频的弹窗中,将文件路径填到表单中;
1.7. 上传文件OOM问题
设置JVM启动参数,具体按需设置
1.7.1. idea设置jvm参数
1.7.2. jar启动设置jvm参数
java -Xmx1024m -Xms1024m -jar ms-mcms.jar
1.8. 静态文件路径说明
文章最长长链 html/web(网站目录,站群情况才会有)/default(模板文件夹名称,需绑定两个模板才有)/各层级栏目拼音/文章id.html
栏目最长长链 html/web(网站目录,站群情况才会有)/default(模板文件夹名称,需绑定两个模板才有)/各层级栏目拼音/index.html(分页情况list-2.html 为第二页)
文章最长短链 web(网站目录,站群情况才会有)/default(模板文件夹名称,需绑定两个模板才有)/文章id.html
栏目最长短链 web(网站目录,站群情况才会有)/default(模板文件夹名称,需绑定两个模板才有)/栏目拼音.html(分页情况 栏目拼音-2.html 为第二页)
html: 在yml中进行配置;短链情况下,此目录仅做静态文件管理,不在静态页面路径中体现
网站生成目录: 系统设置 > 应用设置中 网站生成目录的值,可自定义配置;短链且非站群情况下,不在静态页面路径中体现
模板名称: 如果绑定了两个模板,则会再加一层模板文件夹名称的路径;短链且单模板情况下,不在静态页面路径中体现
其他: 后台栏目文章数据,可自定义修改
1.9. 百度编辑器上传大小怎么设置?
[!tip]如果想要控制文件上传大小等操作可以修改该配置文件以及在页面中的初始化参数。现在官方已经不再维护百度编辑器,推荐使用store的新版编辑器。
1.10. mce编辑器复制富文本word
目前支持office word的图文复制,wps不支持
从office word 复制使用常见问题
https://www.jianshu.com/u/e535e3f6462d
wps word 不支持图文复制,可以手动选中word中的图片复制到编辑器中
1.11. 角色分配权限后看不到菜单
分配权限后,将该角色对应的管理员账号进行登出再登录
1.12. 上传模版失败?
可能由于上传文件过大导致,修改application.yml文件
1.13. 系统默认的文章数据发布时间为什么是未来时间?
因为这些只是演示数据,这么做是为了解决生产文章是可以直接默认当前是时间直接生成即可。
1.14. 生成主页按钮显示不出来
是由于你当前没有这个权限,需要去重新分配权限。(直接导入最新的数据库,默认账号就有权限)
1.15. 登录后台之后为什么好多页面都是404或者500
如果你代码是最新的,那应该是你数据库导入错了,直接导入最新版本的数据就可以了
1.16. 启用移动端用手机访问为什么是空白页面
先确认你的模板中是否有手机端,如果有手机端开启了访问移动端的用手机访问就是访问移动端的模板,如果没有模板手机端访问的则是空白的,这个时候建议把启用手机端的按钮去掉勾选
1.17. 怎么没有生成器菜单
系统更新把生成器功能集合成静态化了,在内容管理菜单下面
1.18. 为什么主页、栏目、文章都生成了,访问文章还是404
生成文章的时候需要注意生成的时间需要往前推
1.19. 在后台文章上传图片成功之后会显示,但是过一段时间就会裂开
因为图片是上传到Tomcat中,每当重置的时候图片就会消失,建议你上传完图片进行备份一下,或者上传完图片把upload文件夹覆盖项目中的这个文件夹
1.20. 首页(前端)界面样式混乱或无法打开
登录后台找到静态化菜单进入,进行所有的生成操作就能修复。
1.21. 文章访问不了或没有生成成功
需要在生成文章时,选择生成文章时间,起始时间要选择靠前一点,比如文章时在2015年08月1日创建的,那么生成的时候时间需要选择在2015年08月1日前。
1.22. 栏目页面有部分乱码,如下截图
需要更改tomcat/conf/server.xml文件的Connector节点(端口配置的Connector节点)增加URIEncoding="UTF-8",
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
1.23. 生成栏目,生成文章点击更新,一直出于更新中
标签使用错误所以才会出现这种情况,仔细检查一下写的标签
1.24. 生成主页时,选择主页模板出现“暂无文件”
去系统设置--->应用设置里面重新保存一下,再去刷新一下生成主页界面即可。
1.25. 当系统中“文章管理”与“静态化”出现404的情况,其他功能正常
情况1:可能是pom.xml中,启用了
情况2:可能是由于后台代码没有编译到,需要重新去编译成功,再启动(编译之后同步到tomcat,建议先去tomcat里面看下一是否同步成功)
1.26. 静态化报错
静态化时出现报错,日志或页面显示报错信息为 ${field.data?string("yyyy-MM-dd")} 标签语法错误,如下图
1.表content_datetime字段需为timestamp类型,且该字段值不能为空,出现上图报错排查数据库数据是否合规
2.企业版、政务版用户优先排查缓存管理中是否正确缓存了文章 需要在系统设置---->缓存管理 里进行刷新缓存,然后重新静态化即可。
[!tip] 文章缓存是缓存在 如ehcache或Redis(政务版支持)中,并非缓存至本地,各个管理员账号缓存数据共通。
1.27. 添加二次开发的业务,配置免登录放行
需要在Action中的RequestMapping中,去掉${ms.manager.path},例图
1.28. 访问网站域名和访问主页地址页面展示不一致
生成了default.html,通过域名访问网站时,默认访问default.html,没有才访问index.html;预览主页默认是访问index.html
1.29. 不符合xss规则
在yml,ms.xss-exclude-url中添加异常信息提示的接口不符合xss规则的请求或ms.xss-exclude-filed中添加添加异常信息提示的参数名
1.30. 模板样式失效
1、参考global.style标签的使用,确保按照文档描述使用; 2、更新标签 或 在浏览器控制台查看静态资源引用地址,补全缺失的目录或"/" 3、如果配置了项目名,需要加上global.contextPath标签,具体参考global标签文档
1.31. 控制台403问题
- 资源文件请求出现403,这一般是服务器拒绝访问该资源,需检查服务器之类
1.32. 使用默认编辑器显示最大输入2000字符数
这个是默认编辑器提示的,不影响实际使用,如需要修改,可以在content/form.ftl中修改
1.33. 请求后端精度丢失问题
- 在请求传递参数时,在参数加上单引号,如id:'id',这样就不会丢失精度。
1.34. 使用ms.xxx显示undefined问题
- 需要在相对应的页面引入静态资源
<!--如以下资源,根据提示引入相对应的资源--> <script src="/static/plugins/ms/3.0/ms.umd.js"></script> <script src="/static/mdiy/index.js"></script>