openclaw部署后页面刷新一直转圈,说明前端资源加载失败或后端api无法响应,常见于nginx反向代理未正确转发请求、静态文件路径错配、或服务未监听指定端口;需依次检查进程状态、日志报错、端口绑定、nginx配置(proxy_pass末尾斜杠、header设置、https协议头)、静态资源路径映射及浏览器缓存。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw部署后页面刷新一直转圈,说明前端资源加载失败或后端API无法响应,常见于Nginx反向代理未正确转发请求、静态文件路径错配、或服务未监听指定端口。
检查后端服务是否真正运行
进入部署目录,执行ps aux | grep openclaw确认主进程是否存在。若只看到grep自身而无实际进程,说明服务根本没启动成功。
查看日志:journalctl -u openclaw.service -n 50 --no-pager。重点关注ERROR行——常见报错如Address already in use表示端口被占,ModuleNotFoundError: No module named 'flask'说明Python依赖未安装。
若日志显示Starting server on http://127.0.0.1:8000但浏览器访问http://服务器IP:8000超时,说明服务绑定在localhost而非0.0.0.0,需修改配置中host='127.0.0.1'为host='0.0.0.0'。
验证Nginx反向代理配置
方法一:绕过Nginx直连后端端口
在浏览器地址栏输入http://服务器IP:8000/api/health(假设后端监听8000)。若返回{"status":"ok"},证明后端正常,问题必在Nginx层;若直接报错,则先解决后端问题。
方法二:检查Nginx配置关键项
打开/etc/nginx/conf.d/openclaw.conf,确认以下三处必须严格匹配:
① location /块内必须包含proxy_pass http://127.0.0.1:8000/;(末尾斜杠不可省略)
② 必须有proxy_set_header Host $host;和proxy_set_header X-Real-IP $remote_addr;
③ 【若使用HTTPS,必须添加proxy_set_header X-Forwarded-Proto $scheme;,否则前端会因协议不匹配反复重定向】
本次更新实现飞书插件 npm 独立分发,新增 Ollama 本地模型配置及 openclaw 命令别名。引入 SQLite 持久化队列,支持断点续传。全面集成飞书、钉钉、企业微信及 QQ 官方渠道,优化阿里云百炼模型选择。修复多 Agent 路由、定时任务校验及配对授权等关键问题,提升系统稳定性与兼容性。
重载Nginx:nginx -t && systemctl reload nginx。若nginx -t报错,按提示修正语法后才能reload。
排查前端静态资源加载失败
第一步:打开浏览器开发者工具(F12)→ Network标签页 → 刷新页面 → 查看Failed状态的请求。
第二步:定位到404的JS/CSS文件,例如/static/js/main.abc123.js,复制该URL在新标签页打开。
第三步:若返回404,说明Nginx未将/static路径映射到正确目录。检查openclaw.conf中是否有类似location /static { alias /var/www/openclaw/static/; }的配置,且alias路径末尾无斜杠,目标目录真实存在且包含文件。
注意:若前端构建时设置了publicPath: '/openclaw/',则所有资源路径会带前缀,此时Nginx需配置location /openclaw/而非/static/,且alias指向子目录。
强制清除浏览器缓存并验证
① 在开发者工具Network面板勾选“Disable cache”
② 按Ctrl+Shift+R硬刷新页面
③ 若此时页面正常加载,说明旧缓存中存在损坏的JS文件。执行rm -rf /var/www/openclaw/static/*清空静态目录,重新运行npm run build或python manage.py collectstatic生成新资源。
这一步操作起来很简单,直接把文件拖进去就行。









