尝试使用 devserver 提供静态文件时,Django channel 出错

标签 django django-channels django-staticfiles

我将我的项目移到另一个环境中,在安装依赖项并尝试运行 manage.py runserver - devserver 后,在请求静态文件时出现以下错误。
坦率地说,我对这个错误完全迷失了,有人知道这是怎么回事吗?

    HTTP GET /static/admin/css/responsive.css 500 [0.21, 127.0.0.1:59982]
Exception inside application: async_to_sync can only be applied to async functions.
Traceback (most recent call last):
  File "/home/maxehleny/.local/share/virtualenvs/mysite-EdbyOLs2/lib/python3.6/site-packages/channels/staticfiles.py", line 41, in __call__
    dict(scope, static_base_url=self.base_url), receive, send
  File "/home/maxehleny/.local/share/virtualenvs/mysite-EdbyOLs2/lib/python3.6/site-packages/channels/staticfiles.py", line 56, in __call__
    return await super().__call__(scope, receive, send)
  File "/home/maxehleny/.local/share/virtualenvs/mysite-EdbyOLs2/lib/python3.6/site-packages/channels/http.py", line 198, in __call__
    await self.handle(scope, async_to_sync(send), body_stream)
  File "/home/maxehleny/.local/share/virtualenvs/mysite-EdbyOLs2/lib/python3.6/site-packages/asgiref/sync.py", line 105, in __init__
    raise TypeError("async_to_sync can only be applied to async functions.")
TypeError: async_to_sync can only be applied to async functions.
我几乎不知道问题可能出在哪里,因为我不知道这与我自己的代码有什么关系。如果我注释掉 channel ,其他一切都正常。
编辑 2 根据 ladruas 的回答降级到 asgiref==3.2.10 也对我有用。
之间似乎存在不兼容
channel ==3.0.3
asgiref==3.3.10

最佳答案

我加了 asgiref==3.2.10到我的 requirements.txt文件,它似乎已经解决了问题。

关于尝试使用 devserver 提供静态文件时,Django channel 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66960899/

相关文章:

python - 无法保存 django 模板中的项目列表

django - 如何删除 django-extra-views 中的行?

Django Channels 设置自定义channel_name

python - 使用 django channel 和 websockets

python - Django:静态图像不会加载

sql - Django 的 Redshift DB 后端

javascript - 对于 Django cometd 来说,什么更好呢?

python - Django channel VS Django 3.0/3.1?

css - Django:使用正确的 URL 从 S3 提供 CSS,但无法加载