Django管理媒体没有加载

时间:2011-06-30 15:47:30

标签: django django-admin

我正在尝试使用nginx / gunicorn部署此应用程序,但我不知道为什么缺少管理媒体文件。

settings.py:

ADMIN_MEDIA_PREFIX = '/srv/www/antingprojects.com.ar/gobras/static/admin/'

我也尝试过:

ADMIN_MEDIA_PREFIX = '/static/admin/'

项目文件夹:

/srv/www/antingprojects.com.ar/gobras/static/admin/css|js|img

urls.py:

(r'^static/admin/(?P<path>.*)$', 'django.views.static.serve')

nginx access.log:

"GET /admin/ HTTP/1.1" 200 1556 "-" 
"GET /srv/www/antingprojects.com.ar/gobras/static/admin/css/base.css HTTP/1.1" 404 1136 "http://antingprojects.com.ar/admin/" 
"GET /srv/www/antingprojects.com.ar/gobras/static/admin/css/dashboard.css HTTP/1.1" 404 1141 "http://antingprojects.com.ar/admin/" 
"GET /admin_media/img/admin/nav-bg.gif HTTP/1.1" 404 1114 

3 个答案:

答案 0 :(得分:6)

您需要设置从管理媒体文件所在目录到用于提供静态文件的静态媒体目录的符号链接。

管理媒体文件应该是这样的:

path/to/django/contrib/admin/media/

设置符号链接后,您可以将ADMIN_MEDIA_PREFIX设置为您为静态文件提供服务的目录中的符号目录,因此这样的事情应该有效:

ADMIN_MEDIA_PREFIX = '/static/admin/'

检查您的管理员尝试从哪里加载其媒体文件,如果您无法确定要使用哪个目录,这应该可以帮助您入门。

这是一个关于符号链接的快速教程:

http://ubuntuforums.org/showthread.php?t=255573

答案 1 :(得分:1)

您的ADMIN_MEDIA_PREFIX是正确的,您只需要从静态视图网址中删除/admin部分,因为您现在指定的内容会转换为以/static/admin/admin开头的URI来访问您的管理员资源通过静态视图。

答案 2 :(得分:1)

感谢您的帮助,问题出在nginx.conf中,我没有找到/ static文件夹。

    location /static {
            root /srv/www/antingprojects.com.ar/gobras;
    }