You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Label Studio使用自定义根URL(Docker Compose部署)

解决Label Studio部署在非根URL路径(/labelstudio/)的配置方案

针对你遇到的「设置LABEL_STUDIO_BASE_URL后出现Heidi’s down错误和404」问题,结合Label Studio基于Django的特性,以及Docker Compose部署场景,按以下步骤调整配置:

1. 完善Docker Compose的环境变量配置

仅设置LABEL_STUDIO_BASE_URL不够,还需补充Django核心环境变量,确保路径规则统一:

修改你的docker-compose.yml中Label Studio服务的配置:

services:
  label-studio:
    image: heartexlabs/label-studio:latest
    environment:
      # 应用根路径(带末尾斜杠,匹配LB的路径前缀)
      - LABEL_STUDIO_BASE_URL=/labelstudio/
      # Django强制脚本路径(不带末尾斜杠,控制Django路由前缀)
      - FORCE_SCRIPT_NAME=/labelstudio
      # 静态文件访问路径(对应前缀)
      - STATIC_URL=/labelstudio/static/
      # 媒体文件访问路径(对应前缀)
      - MEDIA_URL=/labelstudio/media/
    ports:
      - "8080:8080"
    volumes:
      - ./labelstudio-data:/label-studio/data

关键说明:

  • FORCE_SCRIPT_NAME是Django的核心变量,必须与LABEL_STUDIO_BASE_URL的前缀一致(去掉末尾斜杠),否则Django无法正确解析路由。
  • STATIC_URL和MEDIA_URL确保前端静态资源、上传的媒体文件能通过正确路径访问,避免页面加载失败(这是Heidi’s down错误的常见原因)。

2. 调整AWS Load Balancer的路由规则

  • 配置LB的转发规则:将路径前缀/labelstudio/*的请求转发到Label Studio容器的8080端口。
  • 不要设置路径重写:无需将/labelstudio/前缀去掉后转发,Django会通过FORCE_SCRIPT_NAME自行处理路由匹配。
  • 更新LB的健康检查路径:将健康检查URL改为/labelstudio/health,而非默认的/,确保LB能正确识别服务状态。

3. 验证与排查

  • 启动容器后,查看日志:确认没有静态文件收集失败、路由匹配错误的报错。
  • 手动验证静态文件访问:访问http://你的LB域名/labelstudio/static/css/main.css,能正常加载则说明静态路径配置正确。
  • 清除浏览器缓存:之前访问根路径的缓存可能导致资源加载异常,清除后重新访问/labelstudio/。

内容的提问来源于stack exchange,提问作者Thon Deboer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:52:40