[Django] Django-Admin css 적용안되는문제 (정적파일이해)
Python/Django

[Django] Django-Admin css 적용안되는문제 (정적파일이해)

@@@@@@@@@@@@@@@@@

작성 2020 6/3

수정 2020 7/16

 

@@@@@@@@@@@@@@@@@

 

 

Django - gunicorn - nginx 연결후 admin 접속했는데

?????? 뭐야이게

runserver 해서 들어갈떄와 다른점은 오직 nginx를 연결한거밖에 없는데..

그냥할려다가 그래도  장고의 최대장점중 하나인 Admin을 이렇게 쓸수는 없었다.

 

구글링 결과

개발환경에서만 특별히~ 자동으로 연결해준거라고한다.

원래 정적파일이 연결되어있는데  개발환경에서는 자동으로 연결해주고 웹서버를 붙이면 안됨 ㅇㅇ

 

여기서 정적파일(static file) 이란?

- 웹사이트 구성요소중 Image, Css , Script 파일과 같이 그내용이 고정되어 응답을 할때 별도의 처리 없이 파일내용을 그대로 보내면 되는 파일을 의미한다.

Nginx의 경우  Reverse Proxy로 사용할 때 Static File들에 대한 요청을 Nginx가 직접 처리하도록 세팅하여 응답 속도를 향상시킬 수 있습니다 라고 한다 .

 

@@결론

Django는 정적 파일을 제공하는 실 서비스용 기능을 제공하지 않는다!

정적파일을 제공하는건 웹서버 전문 영역이다!

nginx가 정적파일을 제공하게 해라 ! (nginx에 static 파일들의 경로를 알려줘라)

 

1.

setting.py에 STATIC_ROOT = os.path.join(BASE_DIR, 'static') 를 추가해준다.

 

2.

manage.py 경로에서

python manage.py collectstatic 을 쳐준다. 정적파일들을 모아준다고한다.

119 static files copied to ' /현재경로/staticefiles'. 라고뜨면 성공

이런식으로 staticfiiles 폴더가 생김 ㅇㅇ

 

3.

nginx에 static파일 경로 알려주자.

nginx 설정 파일에 들어가자

 

aws /ubuntu 기준

sudo vi/etc/nginx/sites-enabled/장고프로젝트이름  

location /static/{} 을 추가해주자 !

 

server {
  
    listen 80;
    server_name 0.0.0.0;

    charset utf-8;

    location / {
        include proxy_params;
        proxy_pass http://0.0.0.0:8080;
   }
 
    location /static/ {
        alias /home/ubuntu/name(projectname)/staticfile/;
}

}

 

 

하고 nginx를 재시작하면 ~

 

 

야호!!!!!

'Python > Django' 카테고리의 다른 글

[Django] Forms API  (0) 2020.07.28
[Django] Nginx- Gunicorn 삽질  (0) 2020.07.17
Nginx + Gunicorn + Django 서버구축  (1) 2020.07.16
[Django] ORM  (1) 2020.06.20
[Django] Class Based Views  (0) 2020.06.20