问题现象
在启动 OpenCLaw 时,Web UI 页面频繁返回 Not Found 错误,导致无法正常访问控制面板。
原因分析
经过排查,核心问题出在 Gateway 的 resolveControlUiRootSync 函数上。该函数在自动查找控制 UI 目录时,默认逻辑并没有将 node_modules/openclaw/dist/control-ui 纳入候选路径列表。这意味着如果依赖包处于标准安装位置,程序无法通过相对路径正确定位到资源。
此外,在 Windows 环境下手动指定相对路径时,工作目录的解析差异也容易导致路径失效。
解决方案
要彻底解决这个问题,建议采用'物理复制 + 绝对路径'的组合方案。
1. 移动 UI 文件
请将控制 UI 相关文件从 node_modules/openclaw/dist/control-ui 复制到项目根目录下。为了方便管理,建议新建一个英文目录(避免使用 - 或 _ 等特殊符号,防止解析混淆):
E:\你的实际安装目录\control-ui
2. 修改配置文件
编辑项目中的 openclaw.json 文件,明确指定 controlUi.root 为上述绝对路径。注意 Windows 路径在 JSON 中通常需要双反斜杠转义。
{
"controlUi": {
"enabled": true,
"root": "E:\\你的实际安装目录\\control-ui",
"allowInsecureAuth": true,
"dangerouslyDisableDeviceAuth": true
}
}
3. 重启服务
保存配置后,记得重启相关服务使更改生效。
注意事项
- 路径规范:确保路径中不包含中文或特殊符号,尽量保持全英文,减少兼容性问题。
- 权限问题:确认当前运行用户对目标目录有读取权限。
- 配置项说明:
allowInsecureAuth和dangerouslyDisableDeviceAuth涉及安全策略,生产环境请根据实际需求谨慎调整。

