작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
85
0
이런 에러가 발생했습니다.
websocket_urlpatterns = [
path("ws/echo/", EchoConsumer.as_asgi()),
]
path로 추가를 해주려고 했는데, 선생님께서는 추가 하지 않고 진행하셨던거같아서요. 지금 에러나는 부분은 admin으로 카드 추가하고 liveblog에 제대로 뜨는지 확인하는 부분이였습니다.
WebSocket DISCONNECT /ws/liveblog/ [127.0.0.1:50574]
WebSocket HANDSHAKING /ws/liveblog/ [127.0.0.1:50579]
Exception inside application: No route found for path 'ws/liveblog/'.
Traceback (most recent call last):
File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/django/contrib/staticfiles/handlers.py", line 101, in call
return await self.application(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/channels/routing.py", line 62, in call
return await application(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/channels/routing.py", line 134, in call
raise ValueError("No route found for path %r." % path)
이런식의 에러가 뜨고 자동으로 Page not found라고 뜹니다.
감사합니다.
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
sunnnwo님이 WebSocket 연결 시 “No route found for path ‘ws/liveblog/’” 라는 에러를 경험하셨군요. 이 문제는 주로 Django Channels에서 라우팅 설정이 올바르게 이루어지지 않아서 발생합니다. 해당 문제에 대한 해결 방안과 설명을 드릴게요.
현재 routing.py
파일 안에 websocket_urlpatterns
를 정의하셨지만, 라우팅 패턴에 ‘ws/liveblog/’ 경로가 포함되어 있지 않아 발생하는 오류입니다. 즉, ‘ws/liveblog/’ 경로에 대해 처리할 Consumer가 정의되지 않았기 때문입니다.
라우팅 설정 점검: routing.py
파일에서 ‘ws/liveblog/’ 경로에 대한 설정이 누락된 것 같습니다. 해당 경로에 맞는 라우팅 패턴을 추가해야 합니다.
올바른 패턴 추가:
만약 'ws/echo/'
외에 'ws/liveblog/'
경로도 요구된다면, 다음과 같이 패턴을 추가해 보세요.
from django.urls import path
from .consumers import EchoConsumer, LiveBlogConsumer # 새롭게 LiveBlogConsumer를 추가
websocket_urlpatterns = [
path("ws/echo/", EchoConsumer.as_asgi()),
path("ws/liveblog/", LiveBlogConsumer.as_asgi()), # 해당 경로를 처리할 Consumer 추가
]
LiveBlogConsumer
구현 확인:
LiveBlogConsumer
가 .consumers
모듈에 정의되어 있는지 확인하세요.저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
넵 감사합니다. 제가 놓쳤던거같습니다.