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

Django URL模式多余空格致Flutter与后端WebSocket握手失败

问题修复方案

问题根源

你在项目根urls.py中使用path来包含由re_path定义的WebSocket正则路由列表,两种路由类型混用导致拼接时出现异常空格,进而引发404错误。

修复方法(二选一即可)

方法一:将根路由的path改为re_path

修改项目根目录下的urls.py:

from django.contrib import admin
from django.urls import include, path, re_path  # 新增re_path导入
from chat_app.routing import websocket_urlpatterns


urlpatterns = [
    path('admin/', admin.site.urls),
    ...,
    re_path(r'ws/', include(websocket_urlpatterns)),  # 替换path为re_path
]

方法二:将WebSocket路由改为path格式

修改chat_app/routing.py,把正则路由替换为Django的路径转换器格式:

from django.urls import path  # 替换re_path为path
from .consumers import ChatConsumer

websocket_urlpatterns = [
    path('chat_app/<str:unique_id>/', ChatConsumer.as_asgi()),
]

此方法下,根urls.py中的path('ws/', include(websocket_urlpatterns))无需修改。

验证

修改完成后,重新启动Django服务,访问/ws/chat_app/sjfAmH(或对应的WebSocket端点),即可正常匹配路由,不再返回404错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:30:28