정적 파일 배포는 크게 두 단계로 나뉜다.
collectstatic
명령어 실행 staticfiles STORAGES
별칭에 따라 파일을 수동으로 새 위치로 이동시켜야 하거나 Storage 클래스의 post_process 메서드에서 이를 처리해야 할 수도 있다.
모든 배포에 있어서도 악마는 디테일에 있다.
모든 배포 셋업은 다 다른다. 각 서비스에 맞는 기본 아웃라인을 토대로 적합한 방식을 택해야 한다. 아래는 정적 파일 배포와 관련된 일반적인 패턴들이다.
배포 서버에 코드를 배포한다.
서버에서 collectstatic
명령어 실행하여 모든 정적 파일을 STATIC_ROOT에 복사하기
웹서버가 STATIC_ROOT의 정적파일을 사용하도록 STATIC_URL 설정하기
대부분의 큰 규모의 장고 기반 웹은 Nginx와 같은 장고 외의 웹 서버를 도입하여 사용한다.
Nginx는 아파치의 축소된 버전이다.
정적 파일이 변경됐을 때, collectstatic 명령어를 실행시킨다.
로컬 STATIC_ROOT
를 정적 파일 서버에 밀어 올린다. rsync는 변경된 정적 파일의 비트만 전송하면 되므로 이 단계에서 일반적으로 선택하는 패키지다.
STORAGES = {
# ...
"staticfiles": {
"BACKEND": "myproject.storage.S3Storage"
}
}
배포될 때마다 collectstatic
명령어를 실행한다. 그러면 정적 파일이 위에서 정의한 S3로 배포가 된다.