这是我的设置.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 文档中看到的那样,当您设置
DEBUG=True
时可以提供静态文件(仅用于您的开发目的)。否则,您必须将静态文件路径包含到您的 Web 服务器配置中。
提供文件
除了这些配置步骤之外,您还需要实际提供静态文件。
在开发过程中,如果您使用 django.contrib.staticfiles,当 DEBUG 设置为 True 时,这将由 runserver 自动完成(请参阅 django.contrib.staticfiles.views.serve())。
这种方法效率极低,而且可能不安全,因此不适合生产。
请参阅如何部署静态文件,了解在生产环境中提供静态文件的正确策略。