2012-07-18 48 views
0

我想讓Django在子域上工作。它可以渲染主頁面(在urls.py文件中的r^$)就好了,其餘的頁面我得到404錯誤。而不是典型的404錯誤。這些頁面是非常簡單的...子域上的Django

他們看起來是一樣的,但黃頭下面列出的唯一的事情就是:

{'path': u'people/'}. 

這是我會得到我會嘗試去子。 example.com/people。

django是否真的不處理子域,或者這是我的服務器配置的問題。我正在使用nginx和uwsgi,但自從加載django 404頁面後,我感覺這是一個django問題。

這裏是我的nginx的配置:

server { 
    listen  80; 
    server_name sub.example.com; 

    # Error pages 
    # error_page 500 502 503 504 /; 

    location root { 
     root html; 
     uwsgi_pass 127.0.0.1:49154; 
     uwsgi_param UWSGI_SCRIPT django_wsgi; 
     include  uwsgi_params; 
    } 

    location/{ 
     uwsgi_pass 127.0.0.1:49154; 
     include  uwsgi_params; 
     uwsgi_param SCRIPT_NAME /; 
     uwsgi_param UWSGI_SCRIPT mysite.wsgi:application; 
     uwsgi_modifier1 30; 
    } 
} 
+2

我根本不知道uwsgi,但將'SCRIPT_NAME'顯式設置爲'/'聽起來不對。 – 2012-07-18 03:38:40

+0

也讓我擔心,但nginx/uwsgi應用程序似乎運行良好... django錯誤頁面被渲染,並且他們尋找url的網頁是正確的...所以我的猜測是這可能是一個django /子域問題。 – 2012-07-18 04:23:37

+0

如果你刪除這一行會發生什麼:'uwsgi_param SCRIPT_NAME /;'? – Tisho 2012-07-18 07:04:36

回答

0

問題是nginx的發送這些PARAMS到uwsgi。如果你按照Django的uwsig頁面,你會看到他們已經用uwsgi params製作了一個.ini文件。所以django用戶應該忽略nginx文件中的UWSGI params部分

+0

你應該發佈正確的配置在你的答案。 – nk9 2012-09-18 16:54:29