Статические файлы администратора Django волшебным образом обслуживаются
Я только что создал простой сайт Django для разработки и закомментировал
path('admin/', admin.site.urls)
,
с STATIC_URL = '/static/'
в settings.py,
Когда я делаю python manage.py runserver 8100
и перехожу к http://localhost:8100/static/admin/css/nav_sidebar.css
, я вижу
что этот статический файл волшебным образом разорван.
Что на самом деле происходит? Я еще не настроил статическое обслуживание url в моем urls.py? У меня также нет другого статического сервера, такого как NGINX.
Я думаю, что статические файлы обслуживаются, например, NGINX. Они помещаются в место, где они доступны, как только вы выполните python manage.py collectstatic
, и затем Django больше не заботится о них, потому что о них позаботится ваш сервер. Так сказать, они переданы на аутсорсинг. Их обрабатывает другая служба. Таким образом, /static
будет оставаться доступным независимо от URL администратора. То, что вы включаете и выключаете с помощью URL-адресов администратора - это страницы под /admin
.
http://localhost:8100/admin
Больше не будет работать, но
http://localhost:8100/static/admin
останется нетронутым.
Так из https://docs.djangoproject.com/en/3.2/howto/static-files/, когда вы установите DEBUG=True
, Django будет автоматически делать коллстатику и сервер статического файла с URL-адресами для вас.