如何在nginx上提供Django静态文件

时间:2013-05-14 07:38:05

标签: python django nginx

我正在尝试使用uWSGI配置Nginx以服务Django应用程序,但管理面板的布局完全失真...

这是我的Nginx配置:

upstream django {
    server 127.0.0.1:8000;
    }

server {
    # the port your site will be served on
    listen      4321;
    # the domain name it will serve for
    server_name localhost;
    charset     utf-8;
    access_log /var/log/nginx/local-access.log;
    error_log /var/log/nginx/local-error.log;

    client_max_body_size 75M; 

    location /static/admin {

    alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/;
    }

    location / {
    uwsgi_pass  django;
    include     /etc/nginx/uwsgi_params;
    }

}

这是Nginx错误:2013/05/13 18:13:26 [error] 12491#0: *255 open() "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/js/ddsmoothmenu.js" failed (2: No such file or directory)

访问日志:

[pid: 6848|app: 0|req: 8/13] 127.0.0.1 () {42 vars in 773 bytes} [Tue May 14 12:59:30 2013] GET /admin/ => generated 1960 bytes in 995 msecs (HTTP/1.1 200) 7 headers in 438 bytes (1 switches on core 0)
[pid: 6847|app: 0|req: 3/14] 127.0.0.1 () {44 vars in 858 bytes} [Tue May 14 12:59:32 2013] GET /admin/brightCouponsApp/static/admin/css/login.css => generated 0 bytes in 28 msecs (HTTP/1.1 500) 1 headers in 78 bytes (1 switches on core 0)

属于我的Django App的静态文件工作正常,但Django管理员布局不是可以帮助我...

1 个答案:

答案 0 :(得分:4)

检查collectstatic命令,而不是从site-packages目录中提供文件。管理命令基本上将所有应用程序中的静态文件复制到STATIC_ROOT。