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

Django+Docker环境下浏览器请求自动追加容器内/code路径如何解决

问题原因

该问题的核心是Django生成URL时自动追加了前缀,或是浏览器端有额外的路径拼接逻辑,而curl请求是手动指定完整URL、不受前端配置/缓存影响,所以表现正常。常见触发原因如下:

  1. Django配置项FORCE_SCRIPT_NAME被误设为/code:该参数本用于子路径部署场景,配置后Django生成的所有站内URL都会自动携带该前缀
  2. 前端HTML的<base>标签配置错误:如果base标签的href属性被设为/code/,浏览器会自动将该路径作为所有相对请求的基准前缀
  3. 浏览器缓存了旧的301永久重定向规则:之前测试时如果后端返回过跳转到/code前缀的永久重定向,浏览器会缓存该规则,就算后端修复后仍会自动跳转
  4. STATIC_URL/MEDIA_URL配置为带/code的相对路径:会导致静态资源请求自动拼接前缀

解决方案

按优先级逐一排查修复即可:

  • 检查Django settings.py 配置,删除错误配置的FORCE_SCRIPT_NAME = '/code'项,或将其设为空字符串;同时确认STATIC_URL、MEDIA_URL均为以/开头的绝对路径(如STATIC_URL = '/static/')
  • 检查前端入口HTML的<head>标签,确认没有<base href="/code/">这类错误配置,将href值改为/即可
  • 按Ctrl+Shift+R强制刷新页面,或开启浏览器无痕模式、清空缓存后重新测试,排除旧重定向缓存影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:36:01