我有一个基本上完全简单的django项目,没有添加我自己的媒体或以任何方式定制管理界面。使用python manage.py runserver
运行服务器会生成格式良好的管理界面。使用gunicorn_django
运行服务器不会。为什么会这样,我该如何解决?
这绝对是一个找不到css
文件的问题,但它们存储在哪里?我从未对此进行过配置,MEDIA_ROOT
设置为''
。
答案 0 :(得分:1)
如果使用contrib.static,则必须执行collectstatic
命令以将所有特定于应用程序的静态文件(包括管理员自己的文件)放入gunicorn提供的公共目录中。
答案 1 :(得分:1)
我也遇到过这个问题(因为我针对gunicorn进行了一些开发),这里是如何通过urls.py删除admin-media魔术并像其他任何媒体一样提供管理媒体:
import os
import django
...
admin_media_url = settings.ADMIN_MEDIA_PREFIX.lstrip('/') + '(?P<path>.*)$'
admin_media_path = os.path.join(django.__path__[0], 'contrib', 'admin', 'media')
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^' + admin_media_url , 'django.views.static.serve', {
'document_root': admin_media_path,
}, name='admin-media'),
...
)
另外:http://djangosnippets.org/snippets/2547/
当然还有#include <production_disclaimer.h>
。
答案 2 :(得分:1)
我认为最简单的方法是为nginx添加别名(你使用的是一个?!)配置文件:
location /static/admin/ {
alias /<path_to_your_admin_static_files>/;
}
它立刻为我工作
答案 3 :(得分:0)
好的,明白了。只需将此行添加到settings.py
:
MEDIA_ROOT = '/home/claudiu/server/.virtualenv/lib/python2.5/site-packages/django/contrib/admin/media/'
答案 4 :(得分:0)
admin_media_path = os.path.join(django.__path__[0], 'contrib', 'admin', 'static', 'admin')
并在urlpatterns中添加:
url(r'^static/admin/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': admin_media_path,
}),
基于此处的信息:https://docs.djangoproject.com/en/dev/howto/static-files/
对我有用,但比我喜欢的更“神奇”。