排查后端集成问题
症状
- 你尝试通过手动实现后端 API 或按我们的 教程 进行集成,但 Gantt 不会在打开页面时显示任何任务或连线。
或
- 你在将修改保存到后端时遇到问题。
原因
对于在不同平台上出现的不正确行为,可能有很多原因和解决办法,我们在本文中不打算 涉及。
我们的目标是在这里带你完成排查此类问题的常见步骤。一旦定位到问题并理解应用为何无法工作,解决方法通常很简单。
检查页面上的错误信息
- 打开浏览器的开发者工具并重新加载页面。你在浏览器控制台中看到任何错误信息吗?

- 如果有,评估这些错误并判断你是否能够自行处理。否则,继续下一步。
检查客户端请求的内容
-
打开 Network 面板,确保可见 XHR 请求。
-
重新加载页面,找到应从后端加载数据的请求。确保它指向正确的 URL,并检查响应状态。

有错误吗?
404 响应状态意味着传递给 gantt.init 方法的 URL 可能不正确,或者你的应用的路由设置存在问题。
检查服务器返回的内容
选择该请求并检查响应预览或原始响应内容。

响应看起来是否与 预期的数据格式 相似?
如果你看到来自网页服务器的错误信息,而不是 Gantt 数据
你可以确定后端代码或数据库连接设置有问题。
通常,错误响应包含足够的信息来找出问题的原因。如果你看到一个通用的 500 server error 消息,可能需要临时在你的服务器上禁用自定义错误页以便看到实际错误。各个平台的做法不同。如果你不确定从哪里开始,请直接在搜索引擎中搜索 "在(你的服务器或框架)中禁用自定义错误页"。
如果数据看起来大致正常
请查看 id、start_date、end_date、duration、parent 属性。
-
id- 拥有相同id的条目将被合并。如果你有五个匹配 ids 的任务,Gantt 只会显示其中一个。 -
parent- 当parent的值与root_id配置 匹配时,该条目将显示在任务树的根级(默认情况下为任何空值,包括零或 null)。如果parent属性不为空且数据集中没有合适的父任务,则该项将不会显示。 -
start_date、end_date、duration- 确保你的条目至少包含这三种属性中的两种,例如start_date+duration。在 Data Loading 文章中还有更多信息。
确保 start_date/end_date 的格式与在 gantt 的 date_format 配置中指定的格式相匹配。
如果在属性值中发现异常
检查数据库中存储的内容,问题很可能在那里。如果日期格式不匹配,要么修改 date_format 配置,要么修改在输出给客户端之前序列化任务日期的代码。
检查加载到 Gantt 的内容
-
打开浏览器控制台并运行
gantt.getTaskByTime()。 -
检查控制台输出。你很可能会看到一个任务数组。

同样地,你也可以检查任务的 start_date、end_date 和 parent 属性。
筛选
如果那里没有发现明显问题,尝试检查你的代码,任务很可能被筛选器 隐藏。
最后手段
如果以上方法都无效,或者你既看不到任务,也看不到控制台错误,请尝试在我们的论坛发帖提问,或就你的问题联系技术支持。
请务必提供在上述步骤中收集的所有信息。
此外,我们的团队还需要一个最小可复现的演示:要么是一个简化应用的独立包(包括 gantt 页面、所需的所有文件、带有一些测试数据的数据库转储,或一个包含你要加载数据的静态 JSON 文件),要么提供一个在线链接,方便我们在浏览器中检查问题。