Django collectstatics 정적 파일 설정하기
nginx 설정 후, 장고 admin 사이트에 접속하니, 글자와 이미지가 깨져서 보이는 문제가 생겼다.
이는 collectstatics 문제로,
장고 프로젝트에서 정적 파일을 제공하려면, collectstatic 명령을 사용하여 정적 파일을 수집한 후, Nginx를 이용해 서빙해야 한다.
이 글에서는 그 과정을 순차적으로 알아보겠다.
1. Django 설정 확인하기
먼저 settings.py 파일에서 STATIC_URL과 STATIC_ROOT 설정을 확인한다.
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
이렇게 설정하면, collectstatic 명령이 실행될 때 staticfiles 디렉터리에 정적 파일이 수집된다.
2. 정적 파일 수집하기
터미널에서 다음 명령을 실행하여 정적 파일을 수집한다.
python manage.py collectstatic
이 명령은 장고 앱의 static 디렉터리에 있는 정적 파일을 모두 STATIC_ROOT로 지정한 디렉터리에 복사한다.
3. Nginx 설정하기
이제 Nginx 설정 파일을 수정하여 정적 파일 경로를 추가해야 한다. Nginx 설정 파일은 일반적으로 /etc/nginx/nginx.conf 또는 /etc/nginx/sites-available/에 위치한다.
아래와 같이 설정 파일을 수정하자.
server {
# ... 기존 설정 ...
location /static/ {
alias /path/to/your/staticfiles/;
autoindex off;
expires 30d;
add_header Cache-Control "public";
} # ... 기존 설정 ...
}
위 예제에서 /path/to/your/staticfiles/ 부분을 실제 STATIC_ROOT로 설정된 경로로 변경해야 한다.
4. Nginx 설정 적용하기
마지막으로 Nginx를 다시 시작하거나 설정을 리로드하여 변경 사항을 적용한다.
sudo nginx -s reload
이제 장고 프로젝트의 정적 파일이 Nginx를 통해 제공된다.
웹 브라우저에서 정적 파일을 불러오는 것을 확인해보자.
'django' 카테고리의 다른 글
| django - Many-to-Many 관계 이해하기: 'ManyRelatedManager' 객체와 리스트의 차이점 (0) | 2023.12.19 |
|---|---|
| django - Django에서 이메일 보내기 📧 (0) | 2023.05.08 |
| Exceptions in Python (0) | 2022.10.20 |