Wczoraj stworzył ten wpis: DjangoRestFramework browsable api looks different locally vs when deployed on server?Jak wyświetlać pliki statyczne w AWS podczas wdrażania aplikacji Django (`python manage.py collectstatic` nie działa)?
Zasadniczo, kiedy zrobiłem python manage.py runserver
, to pokazał się:
Ale po wdrożeniu go do AWS (eb deploy
), to jest to, co widzę, kiedy dostęp do site:
Odpowiedź na wyżej wymieniony post jest taka, że brakowało moich statycznych plików. Więc szukałem sposobu wdrażania pliki statyczne na AWS i natknąłem się na tym kursie: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html#python-django-update-app
W sekcji „Tworzenie administratora strony”, wspomina, że w celu obsługi plików statycznych, muszę najpierw zdefiniować STATIC_ROOT
w settings.py
(tak Zrobiłem: STATIC_ROOT = os.path.join(BASE_DIR, "ebdjangoapp/static/")
), a następnie zrobiłem eb deploy
. Jednak strona wciąż wygląda tak samo jak drugi obraz (bez plików statycznych). Następnie próbowałem wykonać python manage.py collectstatic
(w ten sposób utworzyłem katalog statyczny z katalogiem rest_framework
w środku, zawierający pliki css
itd.), A następnie ponownie zrobiłem eb deploy
, ale stilowanie witryny wygląda tak samo jak drugie zdjęcie.
Dlaczego statyczne pliki nadal się nie wyświetlają?
Uwaga, szukałem wokół i natknąłem się na to stanowisko: Django app deployment not loading static files a odpowiedź mówi:
„Następnie trzeba służyć settings.STATIC_ROOT
na settings.STATIC_URL
poprzez serwer WWW z wyboru, bardzo często nginx jako reverse proxy za swoje Serwer aplikacji Apache-mod_wsgi. "
Ale nie mam pojęcia, jak działają serwery WWW (nginx, reverse proxy, Apache-mod_wsgi). Mam aplikację Django, którą uruchamiam lokalnie z python manage.py runserver
, i mam elastyczną fasolkę AWS. Wdrażam moją aplikację Django do AWS, wykonując eb deploy
. Jakie kroki muszę podjąć, aby pliki statyczne pojawiły się przy wdrażaniu (zakładając, że nie wiem, jak skonfigurować Nginx, Reverse Proxy itp.).?
Czy używasz '' python manage.py collectstatic'' w dowolnym momencie? –
@GrahamDumpleton Tak, zrobiłem to zanim zrobiłem 'eb deploy'. (Zasadniczo zrobiłem to lokalnie, a wszystkie pliki zostały umieszczone w folderze statycznym, a następnie wdrożyłem go). – user2719875