2012-12-19 24 views
5

Pracuję nad serwowaniem aplikacji Django z serwera Ubuntu. Postępowałem zgodnie ze wszystkimi instrukcjami w http://senko.net/en/django-nginx-gunicorn/, ale kiedy dojdę do kroku gunicorn_django -b 0.0.0.0:8000, witryna nagle przestaje obsługiwać pliki statyczne. Strona działa dobrze przy użyciu serwera dev python manage.py runserver 0.0.0.0:8000.gunicorn nie obsługuje plików statycznych

Nie zmieniłem ustawień zapasów dla niczego. Jakieś pomysły, dlaczego to nie działa?

EDIT:

Po wykonaniu resztę samouczka i rady Andrew Gorcester dodałem

location /static { 
    root /path/to/static/files; 
} 

do mojego pliku nginx sites-available, a wszystko wydaje się działać!

+0

Wystarczy, aby potwierdzić: uruchamiasz zarówno nginx, jak i gunicorn, a następnie kierujesz przeglądarkę do portu 80 na localhost (bez portu 8000), zgadza się? –

+0

Nie mam w ogóle uruchomionego nginx. Dostaję moją pełną witrynę, gdy wskazano mój adres URL: 8000 po uruchomieniu komendy 'manage.py'. –

+1

Dobra, prześlę odpowiedź, by podać więcej szczegółów. –

Odpowiedz

5

Gunicorn nie jest serwerem internetowym ogólnego zastosowania, służy jedynie aplikacji (w tym przypadku django). Django nie udostępnia statycznych plików poza rozwojem, dla wygody programisty, ponieważ nie jest to skuteczny lub koniecznie bezpieczny pojazd do udostępniania plików statycznych.

Postępując zgodnie z instrukcjami przez całą drogę zostaniesz przekierowany do ustawiania nginx działającego na porcie 80, który będzie 1) proxy twoja aplikacja z portu 8000 do portu 80 i 2) wyświetlaj pliki statyczne na tym samym porcie, wybór, które zadanie należy wykonać na podstawie adresu URL.

Nie jest powodem do alarmu, że pliki statyczne nie działają na porcie 8000 - w tej konfiguracji powinny działać tylko na porcie 80, po prawidłowym skonfigurowaniu nginx. Istnieją inne możliwe konfiguracje django z innymi strategiami obsługi plików statycznych, chociaż większość z nich działa zgodnie z zalecaną konwencją udostępniania plików statycznych całkowicie oddzielonych od aplikacji, jak w tym przypadku.

Powiązane problemy