반응형
static파일 처리하는 과정
static 파일이 포함된 프로젝트에서 서버로 배포하기 위해서는 아래 두가지 과정을 거쳐야 한다.
- static 파일의 위치를 설정해주기
- static파일을 한곳에 모으기
이 과정들을 하기 위해서는 아래와 같은 처리들을 해주어야한다.
- 앱 내에 static 폴더를 만들어서 위치를 지정해 준다.
- settings.py에 static폴더 위치를 기재해 주어야한다.
- python3 manage.py collectstatic 명령어를 통해서 static파일을 모아준다.
Django는 Web Application 프레임 워크이다. Web Application은 요청에 맞춰 데이터를 처리한 후 Response를 하는 역할을 한다. static 리소스라는것은, 말 그대로 '정적' 인 컨텐츠이다. 즉, 한번 생성되면, 그 값이 바뀌지 않는 값인것이다. 이러한 것들은 Web Server에서도 충분히 처리가 가능하고, Web Application에서 이를 처리하게 된다면 불필요한 WSGI(Web Server Gateway Interface)를 거쳐야 하는 과정이 생기기 때문에, 비효율적이게 된다.
그렇기 때문에 Django 에서는 static파일을 직접 처리하는 기능을 가지고 있지 않다. 대신 collectstatic 명령어 옵션을 통해 프로젝트 내 static파일을 한군데 모아서 서버로 복사한다. 이 명령어의 결과로 실제 배포되는 Web Server에서는 Web Application이 복사해준 static파일들을 저장한 뒤 클라이언트 요청에 직접 응답할 수 있게 된다.
static설정 항목으로는 아래와 같은 것들이 있다.
- STATICFILES_DIRS : DEBUG=True(개발모드) 상태에서 static파일의 위치를 지정하는 항목이다. 경로를 여러개 설정할 수 있다.
- STATIC_ROOT : DEBUG=False(실서비스모드)상태에서 static 파일을 모드익 위한 절대 경로를 의미한다. 이 변수에 명시된 경로에 있는 모든 파일을 웹서버가 사용할 수 있다. application내에서 위치한 static폴더와 STATICFILES_DIRS에 명시된 경로의 모든 파일들을 모은다.
- STATIC_URL : STATIC_ROOT에 위치한 참조하기 위한 URL이다.
반응형
'Back-End > Python Django' 카테고리의 다른 글
[Django] 기존에 존재하던RDB DB를 Django model로 migration하기 (0) | 2022.04.06 |
---|---|
[Django] DEBUG=False 상태에서 static 파일 사용하기 (0) | 2022.04.05 |
[Django] 함수형 View 클래스형 View로 변경해보기 (0) | 2022.03.06 |
[Django] get_context_data() 메소드의 작동원리 (0) | 2022.03.05 |
[Django] apps.py의 간단한 활용 (0) | 2022.03.05 |