DevServer 是开发 Fabric 工作负荷时运行的本地 Web 服务器。 它在 localhost 上为前端(SPA)提供服务,并提供一小组 HTTP 终结点,Fabric 在开发过程中通过其检索您的产品和项清单。 与 DevGateway 结合使用时,Fabric 可以在 iFrame 中加载工作负荷 UI 并读取清单数据,而无需将任何内容发布到租户。
DevServer 的作用
- 在 localhost 上通过 HTTP 承载负载前端(例如 http://localhost:60006),以便 Fabric 可以在 iFrame 中加载它。
- 提供清单引用的静态资产(图标、本地化字符串、图像)。
- 公开 Fabric 用于在开发期间读取清单的本地 JSON 终结点。
- 在大多数设置中启用热重载,实现编辑刷新快速循环。
重要
DevServer 与 DevGateway 协同工作。 DevGateway 向 Fabric 注册本地工作负载实例,以便服务在您开发期间知道与 DevServer 端点进行通信。
Where Fabric 调用 DevServer
启用开发模式并启动 DevGateway 和 DevServer 时:
- Fabric 通过工作负荷清单定义的前端终结点导航到前端(请参阅 工作负荷清单)。 在开发中,这通常指向由 DevServer 公开的 localhost URL。
- Fabric 会查询 DevServer 的面向产品的元数据,以便为工作负荷呈现导航、磁贴和其他 UX。 这样就可以在
Product.json和项清单上进行迭代,而无需重新生成和上传包。
DevServer 提供的本地终结点
确切路由可能因模板而异,但示例存储库公开了一小组可预测终结点:
- GET/ - 返回 Web 应用(UI Fabric 加载到 iFrame 中)。
- GET /manifests - 返回一个 JSON 数据包,用于聚合前端使用的产品清单和项目清单。 这反映了 Fabric 在发布时预期的结构(请参阅 产品清单 和 项目清单)。
- GET /assets/... - 提供清单引用的图标、图像和本地化字符串。
注释
- CORS 和标头在示例 DevServer 中预配置,以便可以嵌入应用并与主机通信。
- 上述路由名称遵循当前示例;如果项目对清单终结点使用不同的路径,请查阅模板的自述文件。
典型开发流
- 从示例存储库启动 DevServer,以在 localhost 上托管前端。
- 启动 DevGateway,将本地工作负荷注册到 Fabric。
- 打开 Fabric 工作区并启动负载入口点;Fabric 在 iFrame 中加载应用,并调用 DevServer 接口来读取清单数据。
- 编辑 UI 或清单文件并刷新;更改立即生效,无需重新打包。
与已发布清单的关系
在生产环境中,工作负载的清单作为工作负荷 NuGet 包的一部分打包和上传(请参阅 清单概述)。 在开发过程中,DevServer 的本地终结点充当这些打包文件的轻量级替代品,以便您可以快速进行迭代:
- 架构和规则与已发布清单相同。
- DevServer 仅影响本地开发;它不会更改发布的工作原理。
故障排除提示
- 如果 iFrame 显示空白页,请确认 DevServer 正在运行,清单中的前端终结点指向正确的 localhost URL。
- 如果缺少图标或字符串,请检查
assets路径,并确认 DevServer 是否正在提供/assets下的这些文件。 - 如果 Fabric 找不到清单,请验证您的模板中是否存在
/manifests路由并返回有效的 JSON。