openclaw web UI 无法访问 not found
问题解决总结
咱们最后定位到的根本原因还挺典型的:Gateway服务里那个resolveControlUiRootSync函数,在自动扫描控制UI目录时,它的备选路径列表里,偏偏漏掉了node_modules/openclaw/dist/control-ui这个位置。而当我们手动指定相对路径时,有时候又会因为工作目录的解析逻辑出点岔子,导致它还是找不到。
最终解决方案
绕开这个坑的办法其实很直接,分两步走:
第一步:迁移控制UI文件
直接把控制UI所需的所有文件,从node_modules/openclaw/dist/control-ui这个目录,完整地复制到你的项目根目录下。比如像这样:
E:\你的项目实际路径\control-ui
这里有个小提示:建议目录名只用英文字母,连字符和下滑线也尽量别用。倒不是绝对不行,主要是“-”和“_”在某些解析场景下容易引起混淆,能避免就避免。
第二步:在配置中锁定绝对路径
接下来,用绝对路径一劳永逸地指定它。编辑你的openclaw.json配置文件,找到controlUi部分,像下面这样设置:
"controlUi": {
"enabled": true,
"root": "E:\\你的项目实际路径\\control-ui",
"allowInsecureAuth": true,
"dangerouslyDisableDeviceAuth": true
}
这样一来,无论工作目录怎么变,Gateway都能准确地找到控制UI的入口,问题也就解决了。