How to deploy static files¶
더 보기
:mod:’django.contrib.static files’의 사용에 대한 자세한 내용은 :doc:’/how to/static files/index’를 참조하십시오.
프로덕션에서 정적파일 제공하기¶
정적 파일을 프로덕션에 넣는 기본 개요는 두 단계로 구성됩니다. 정적 파일이 변경될 때 :djadmin:’collectstatic’ 명령을 실행한 다음 수집된 정적 파일 디렉토리(:seting:’).STATIC_ROOT’)를 정적 파일 서버로 이동하여 제공합니다. : 설정에 따라 달라집니다.STATICFILES_STORY’에서 파일을 수동으로 새 위치로 이동하거나 :func:’post_process <django.contrib.staticfiles.staticfiles.storage로 이동해야 할 수 있습니다.정적 파일 저장소입니다.포스트_프로세스’ 방식의 스토리지 클래스가 이를 해결할 수도 있습니다.
모든 배포 작업과 마찬가지로 세부 사항도 중요합니다. 모든 프로덕션 설정은 약간 다르므로 필요에 맞게 기본 개요를 조정해야 합니다. 다음은 도움이 될 수 있는 몇 가지 일반적인 패턴입니다.
같은 서버에서 정적파일과 사이트를 제공하기¶
사이트에 이미 서비스를 제공하고 있는 서버와 동일한 서버에서 정적 파일을 제공하려는 경우 프로세스는 다음과 같을 수 있습니다.
- 개발서버로 코드 올리기
- 서버에서 :djadmin:’collectstatic’을 실행하여 모든 정적 파일을 :seting:’에 복사합니다.STATIC_ROOT’입니다.
- :seting:’에서 파일을 서비스하도록 웹 서버를 구성합니다.URL의 STATIC_ROOT’ 아래에 있습니다. 설정:’:’STATIC_URL’입니다. 예를 들어 다음과 같습니다.Apache 및 mod_wsgi로 이 작업을 수행하는 방법입니다.
특히 웹 서버가 여러 개인 경우 이 프로세스를 자동화할 수 있습니다.
특정 서버에서 정적파일 제공하기¶
Most larger Django sites use a separate web server – i.e., one that’s not also running Django – for serving static files. This server often runs a different type of web server – faster but less full-featured. Some common choices are:
- Nginx
- Apache_의 stripped-down 버전
이 서버 구성은 이 문서의 범위를 벗어납니다. 각 서버의 해당 문서에서 지침을 확인하십시오.
정적 파일 서버가 Django를 실행하지 않으므로 다음과 같이 배포 전략을 수정해야 합니다.
- 정적 파일이 수정되었다면, 로컬에서
collectstatic
를 실행하세요. - 로컬:설정:’를 누릅니다.STATIC_ROOT’을(를) 정적 파일 서버에 올려서 서비스 중인 디렉토리에 넣습니다. ‘rsync https://rsync.samba.org/’_은(는) 변경된 정적 파일의 비트만 전송하면 되기 때문에 이 단계에서 흔히 선택할 수 있습니다.
클라우드 서비스나 CDN으로 정적 파일 제공하기¶
Another common tactic is to serve static files from a cloud storage provider like Amazon’s S3 and/or a CDN (content delivery network). This lets you ignore the problems of serving static files and can often make for faster-loading web pages (especially when using a CDN).
이러한 서비스를 사용할 때 기본 워크플로우는 위와 약간 비슷하지만 서버에 정적 파일을 전송하기 위해 “rsync”를 사용하는 대신 정적 파일을 스토리지 공급자 또는 CDN으로 전송해야 한다는 점을 제외하면 그렇습니다.
여러 가지 방법을 사용할 수 있지만 제공자에 API가 있는 경우 :doc:’사용자 정의 파일 스토리지 백엔드를 사용하여 CDN을 Django 프로젝트와 통합할 수 있습니다. 타사 사용자 지정 스토리지 백엔드를 작성했거나 사용 중인 경우 :djadmin:’collectstatic’을 설정하여 사용할 수 있습니다.static files_storage’를 저장 엔진에 연결합니다.
예를 들어 “myproject.storage”에 S3 스토리지 백엔드를 작성한 경우입니다.S3Storage는 다음과 같은 용도로 사용할 수 있습니다.
STATICFILES_STORAGE = 'myproject.storage.S3Storage'
작업이 완료되면 djadmin:’collectstatic’만 실행하면 정적 파일이 스토리지 패키지를 통해 S3까지 푸시됩니다. 나중에 다른 스토리지 제공자로 전환해야 하는 경우 :seting:’만 변경하면 됩니다.정적 파일_저장소’ 설정입니다.
백엔드를 작성하는 방법에 대한 자세한 내용은:doc:’/how to/custom-file-storage’를 참조하십시오. 많은 공통 파일 스토리지 API에 대한 스토리지 백엔드를 제공하는 타사 앱이 있습니다. 좋은 출발점이 바로 djangopackages.org입니다.
추가사항¶
:mod:’django.contrib.static files’에 포함된 모든 설정, 명령, 템플릿 태그 및 기타 항목에 대한 자세한 내용은 :doc:’static files reference’를 참조하십시오.