STATICFILES_FINDERS 사용:
- STATICFILES_FINDERS 설정은 Django에게 정적 파일을 찾을 때 어떤 방법을 사용할지를 알려줍니다. 기본적으로 AppDirectoriesFinder와 FileSystemFinder가 사용됩니다.
- AppDirectoriesFinder는 각 Django 앱의 static 디렉토리에서 정적 파일을 찾습니다.
- FileSystemFinder는 각 앱의 루트 디렉토리에서 정적 파일을 찾습니다.
STATICFILES_DIRS 설정 확인:
- STATICFILES_DIRS 설정은 추가적인 정적 파일 디렉토리를 지정합니다. collectstatic 명령을 실행할 때, 이 디렉토리에 있는 파일들도 복사됩니다.
파일 복사:
- 정적 파일을 찾은 후에는 STATIC_ROOT로 지정된 디렉토리로 파일을 복사합니다. 이 디렉토리는 collectstatic 명령을 통해 생성되며, 정적 파일을 모두 모아둔 최종 위치입니다.
파일 충돌 해결:
- 만약 동일한 이름의 파일이 여러 앱이나 디렉토리에서 발견되면, collectstatic은 충돌을 방지하기 위해 파일을 복사할 때 경로를 수정합니다. 기본적으로는 덮어쓰기 방식을 사용하며, --clear 옵션을 사용하여 기존 파일을 지울 수 있습니다.
데이터 압축 및 최적화:
- 설정에 따라 collectstatic은 CSS나 JavaScript 파일을 압축하고 최적화하는 도구를 사용할 수 있습니다. 예를 들어, django-compressor와 같은 앱을 사용하여 이 작업을 수행할 수 있습니다.
캐싱:
- collectstatic은 실행 시점에서 정적 파일을 변경 여부를 확인하여 필요한 경우에만 파일을 복사합니다. 변경 여부는 파일의 수정 시간 등을 기준으로 판단됩니다