2016-11-04 54 views
0

我正在設置我的Django項目來處理uwsgi和nginx。對於靜態的內容,我在我的nginx.conf如下:爲什麼靜態內容請求會轉到uwsgi?

location /static { 
    alias /Users/me/mystatic; # your Django project's static files - amend as required 
} 

我已經設置STATIC_ROOT/Users/me/mystatic並呼籲collectstatic所有靜態文件複製到該目錄中。在我的uwsgi日誌中,我看到了靜態內容的GET請求。由於nginx應該提供靜態內容,爲什麼GET請求發送到uwsgi?

+0

嘗試添加/靜態/到位 – aliasav

+0

如果它不工作,請添加其餘的nginx conf,並且確保在您的django設置中STATIC_URL是「/ static /」 – aliasav

回答

0

問題是我把我自己的nginx.conf放在/usr/local/etc/nginx/sites-enabled而不是/usr/local/etc/nginx/servers。在/usr/local/etc/nginx/nginx.confinclude servers/*;是最後。因此,UWSGI仍在服務於靜態文件。我跟着django-nginx-uwsgi tutorial,我想我必須創建一個新的sites-enabled目錄。我正在使用OS X.

我在Linux上看到,儘管/etc/nginx/nginx.conf最後包含include /etc/nginx/sites-enabled/*;,所以本教程中的步驟適用於Linux。

/static結尾的額外/沒有什麼區別,但它並沒有傷害到它在所有路徑的末尾。

2

確保STATIC_URL設置爲"/static/"

nginx的的c​​onf應該是這個樣子:在location

server { 

    listen 80 ; 
    server_name XXXX; 
    client_max_body_size 4G;    

    location /static/ { 
     alias <path-to-collectstatic> 
    } 

    location/{ 
     include uwsgi_params; 
     uwsgi_pass unix:/tmp/uwsgi_web.sock; 
    } 

} 

通知所附/static

最後一件事,確保應用服務器與DEBUG運行爲False

+0

是的,我有' ''STATIC_URL ='/ static /''''。我今晚會嘗試'''location/static /''',但我想指出[nginx-uwsgi-django教程](http://uwsgi-docs.readthedocs.io/en/latest/tutorials /Django_and_nginx.html#configure-nginx-for-your-site)只使用'''/ static'''。 – user2233706