Django의 정적 파일(Static files) 처리 방법
Django는 웹 애플리케이션 개발을 위한 강력한 프레임워크입니다. 애플리케이션에는 정적 파일(예: CSS, JavaScript, 이미지 파일 등)이 필요할 수 있습니다. 이 문서에서는 Django에서 정적 파일을 처리하는 방법에 대해 알아보겠습니다.
정적 파일 디렉토리 구성
Django에서는 STATICFILES_DIRS
설정을 사용하여 정적 파일의 디렉토리 구성을 정의합니다. settings.py
파일에서 STATICFILES_DIRS
변수에 디렉토리 경로를 설정할 수 있습니다.
# settings.py
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
위의 예제에서 STATICFILES_DIRS
는 static
디렉토리를 포함하는 리스트입니다. 이 디렉토리는 프로젝트의 루트 디렉토리에 위치하며, 여기에 정적 파일을 저장합니다.
정적 파일 URL 설정
Django에서는 정적 파일의 URL을 설정해야 합니다. 이를 위해 urls.py
파일에서 정적 파일 경로를 설정합니다.
# urls.py
from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
위의 예제에서 urlpatterns
리스트에 static()
함수를 사용하여 정적 파일의 URL을 설정합니다. settings.py
파일에서 STATIC_URL
변수로 설정된 URL 패턴을 사용합니다. 또한, settings.py
파일에서 STATIC_ROOT
변수에는 정적 파일을 모으는 경로를 설정합니다.
정적 파일 사용
이제 정적 파일을 사용할 준비가 되었습니다. 예를 들어 CSS 파일을 사용하려면 HTML 파일에서 해당 CSS 파일을 import 해야 합니다.
<!-- templates/index.html -->
{% load static %}
<!DOCTYPE html>
<html>
<head>
<title>My Django App</title>
<link rel="stylesheet" href="{% static 'css/styles.css' %}">
</head>
<body>
<h1>Welcome to my Django app!</h1>
</body>
</html>
위의 예제에서 {% load static %}
를 사용하여 Django의 정적 파일 태그를 로드합니다. 그리고 CSS 파일을 <link>
태그로 가져올 때 {% static 'css/styles.css' %}
를 사용하여 정적 파일의 URL을 설정합니다.
정적 파일 수집
Django 애플리케이션을 배포할 때, 정적 파일을 한 곳에 모아야 합니다. 이를 위해 collectstatic
명령을 사용할 수 있습니다. 아래의 명령을 통해 정적 파일을 모을 수 있습니다.
$ python manage.py collectstatic
위의 명령은 STATIC_ROOT
로 설정된 경로에 정적 파일을 수집합니다.
결론
Django에서 정적 파일을 처리하는 방법을 알아보았습니다. STATICFILES_DIRS
변수를 사용하여 디렉토리 구성을 설정하고, urlpatterns
리스트와 static()
함수를 사용하여 정적 파일의 URL을 설정합니다. 정적 파일을 사용하려면 {% static %}
태그를 사용하여 URL을 지정해야 합니다. Django 애플리케이션을 배포할 때는 collectstatic
명령으로 정적 파일을 모아야 합니다.
참고 자료
- Django 공식 문서: Managing static files