运行 asgi 服务器时找不到 django admin 的静态文件

问题描述 投票:0回答:1

这是我的设置.py

# ...other settings

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

# ...other settings

然后我就跑

python manage.py collectstatic

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

这收集静态(之后我在根文件夹中有 static 文件夹),启动 asgi 服务器,但是当我进入管理页面时,它看起来没有任何 CSS 或 JS 文件。只是一堆无组织的文字。

这是来自终端的日志:

Here what logs look likeINFO:     
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

我总是对静态文件感到不舒服,有人可以告诉我我做错了什么吗?

django static asgi
1个回答
0
投票

正如您在相关问题和 django 文档中看到的那样,当您设置

DEBUG=True
时可以提供静态文件(仅用于您的开发目的)。否则,您必须将静态文件路径包含到您的 Web 服务器配置中。

提供文件

除了这些配置步骤之外,您还需要实际提供静态文件。

在开发过程中,如果您使用 django.contrib.staticfiles,当 DEBUG 设置为 True 时,这将由 runserver 自动完成(请参阅 django.contrib.staticfiles.views.serve())。

这种方法效率极低,而且可能不安全,因此不适合生产。

请参阅如何部署静态文件,了解在生产环境中提供静态文件的正确策略。

© www.soinside.com 2019 - 2024. All rights reserved.