我离开内置的运行服务器后,为什么Django无法找到我的管理媒体文件?
作者:互联网
当我使用内置的简单服务器时,一切正常,管理界面很漂亮:
python manage.py运行服务器
但是,当我尝试使用带有django.core.handlers.wsgi.WSGIHandler的wsgi服务器为应用程序提供服务时,Django似乎忘记了管理媒体文件在哪里,并且管理页面根本没有样式化:
gunicorn_django
这怎么发生的?
解决方法:
当我查看Django的源代码时,我找出了原因.
在django.core.management.commands.runserver模块中的某个位置,WSGIHandler对象是
包装在AdminMediaHandler中.
根据该文档,AdminMediaHandler是一个
WSGI middleware that intercepts calls
to the admin media directory, as
defined by the ADMIN_MEDIA_PREFIX setting, and serves those images.
Use this ONLY LOCALLY, for development! This hasn’t been tested
for
security and is not super efficient.
这就是为什么仅在使用测试服务器时才能自动找到管理媒体文件的原因.
现在,我继续手动设置管理媒体网址映射:)
标签:django-admin,python,django 来源: https://codeday.me/bug/20191210/2098381.html