2013-05-14 23 views
1

我想用uWSGI配置Nginx的服務Django的應用程序,但管理面板的佈局完全扭曲Django的靜態文件...如何服務於nginx的

這裏是我的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應用程序的靜態文件是從您的站點包提供文件服務的,而不是工作正常,但Django管理佈局是不是可以有一個人幫助我......

+0

我的應用程序名稱在admin和static之間爲什麼是'/ admin/brightCouponsApp/static/admin/css/login.css'我認爲它應該是'/admin/static/admin/css/login.css ' – 2013-05-14 08:13:34

回答

4

退房的collectstatic命令目錄。管理命令基本上將靜態文件從您的所有應用程序複製到STATIC_ROOT。

+0

已經做了...不工作我有另一個應用程序具有類似的配置,但工作正常...不知道發生了什麼... – 2013-05-14 09:10:03

+0

你的配置不起作用的原因可能是,根擁有站點包中的django文件並希望你不要以root身份運行你的nginx工作者。這就是爲什麼我建議使用collectstatic的原因。爲了讓它起作用,你應該從nginx配置文件中刪除'location/static/admin {...}',併爲'location/static {}'添加配置,指向STATIC_ROOT。 – relekang 2013-05-14 12:25:14

+1

我試過....我用我的應用程序/靜態以及它仍然工作正常,但Django的靜態文件無法加載....實際上,nginx能夠找到但500錯誤被拋出.. ...這次 – 2013-05-14 12:32:10