본문 바로가기

꿀팁

Django admin, swagger 페이지가 갑자기 이상하게 보일 때

Nginx로 Loadbalancer를 띄우고 django 서버와 연결하였는데 Django drf swagger 페이지가 안보이고, admin page도 아래와 같이 이상하게 보여서 당황스러웠다.

 

CSS없는 django admin

구글링을 통해 아래와 같은 이유를 찾아냈다.

 

원인 1. nginx나 tompcat같은 Web Server가 정적 파일을 읽을 수 없기 때문.

해결방법

 

1. 프로젝트 최상위 디렉터리에 '_static' 이라는 폴더를 생성한다.

 

2. settings.py 에 아래와 같이 두 줄을 추가한다.

STATIC_URL = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, '_static')

3. urls.py 맨 아래에 아래와 같은 코드를 추가한다.

from django.conf.urls.static import static
from django.conf import settings
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

4. 쉘에서 아래 명령어를 입력한 뒤에, 서버를 실행하면 정적 파일을 웹서버에 제공할 수 있다.

python manage.py collectstatic
python manage.py runserver 0.0.0.0:8000 or  gunicorn --env DJANGO_SETTINGS_MODULE= myproject.settings hbcm.wsgi --bind 0:8000

 

원인 2 Debug=True

해결방법: Settings.py의 Debug=True라면 static 파일을 지정할 수 없다. Debug=False로 설정하면 정상적으로 페이지가 보인다.

'꿀팁' 카테고리의 다른 글

청와대 관람 후기  (2) 2022.05.30
티스토리에서 수식 작성하는 방법 (MathJax)  (0) 2019.03.23