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

运行ASGI服务器时Django Admin静态文件无法找到求助

Django Admin静态文件404问题排查与解决

问题详情

静态文件已通过collectstatic收集到项目根目录的static文件夹,但使用Uvicorn启动ASGI应用后,访问Admin页面时所有CSS/JS资源返回404,终端日志显示静态资源路径请求失败。

我的配置与操作

settings.py相关配置

# ...其他配置

STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC_URL = 'static/'

# ...其他配置

执行的命令

python manage.py collectstatic

uvicorn Django_Channels.asgi:application --port 8000 --workers 4 --log-level debug --reload

终端错误日志

INFO:     127.0.0.1:51770 - "GET /static/admin/css/dashboard.css HTTP/1.1" 404 Not Found
Not Found: /static/admin/css/responsive.css
INFO:     127.0.0.1:51770 - "GET /static/admin/css/responsive.css HTTP/1.1" 404 Not Found
Not Found: /static/admin/js/theme.js
INFO:     127.0.0.1:51769 - "GET /static/admin/js/theme.js HTTP/1.1" 404 Not Found
Not Found: /static/admin/js/nav_sidebar.js
INFO:     127.0.0.1:51770 - "GET /static/admin/js/nav_sidebar.js HTTP/1.1" 404 Not Found

解决步骤

1. 给ASGI应用添加静态文件处理中间件

Uvicorn本身不会自动处理静态文件,Django的ASGI应用在生产模式下也不会默认提供静态文件服务,需要借助WhiteNoise中间件实现:

  • 先安装依赖:pip install whitenoise
  • 修改Django_Channels/asgi.py文件:
import os
from django.core.asgi import get_asgi_application
from whitenoise import WhiteNoise

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Django_Channels.settings')

django_asgi_app = get_asgi_application()
# 用WhiteNoise包装Django ASGI应用,指定静态文件根目录
application = WhiteNoise(django_asgi_app, root=os.path.join(BASE_DIR, "static"))

# 若有Channels的WebSocket路由,继续保留原有配置
# application = ProtocolTypeRouter({
#     "http": application,
#     "websocket": URLRouter(...)
# })

2. 修正STATIC_URL的路径格式

当前STATIC_URL = 'static/'缺少前导斜杠,可能导致路径解析异常,修改为:

STATIC_URL = '/static/'

3. 重新确认静态文件收集结果

检查项目根目录的static/admin文件夹是否存在完整的css、js子文件夹及对应文件,若缺失则重新执行收集命令(清空旧文件避免干扰):

python manage.py collectstatic --clear

4. 开发环境临时调试方案(仅用于本地测试)

如果是开发阶段,可开启DEBUG = True,确保django.contrib.staticfiles在INSTALLED_APPS中,此时Django会自动处理静态文件请求,但生产环境禁止依赖此方式,必须用WhiteNoise或Nginx等反向代理处理静态资源。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:00:05