HTML을 제외하고, 웹 어플리케이션은 일반적으로 전체 웹 페이지를 렌더링하는 데 필요한 추가 파일 — 예:이미지, JavaScript 또는 CSS — 을 제공해야합니다. Django에서는 이러한 파일을 《정적 파일》 이라고 부릅니다.
static의 활용하는 방법에 대한 공식문서 참조
polls 디렉토리에 static 디렉토리를 만듭니다. polls/templates/ 안의 템플릿을 찾는 것과 비슷하게 정적 파일을 찾습니다.
방금 만든 정적 디렉토리 내에 polls이라는 다른 디렉토리를 만들고 그 안에 style.css라는 파일을 만듭니다. 즉, 스타일시트는 polls/static/polls/style.css에 있어야 합니다. -> 우리가 템플릿 만들때 했던 이유와 방식이 동일
AppDirectoriesFinder 정적 파일 검색기가 작동하는 방식 때문에 템플릿 경로를 참조하는 방식과 유사하게 Django에 있는 이 정적 파일을 polls/style.css로 참조할 수 있습니다.
Django의 STATICFILES_FINDERS 설정은 다양한 소스에서 정적 파일을 찾는 방법을 알고 있는 파인더 목록을 가지고 있습니다. 기본값 중 하나는 AppDirectoriesFinder 인데, INSTALLED_APPS 에서 《정적》 하위 디렉토리를 찾습니다, 방금 생성 한 polls 의 경우입니다. 관리 사이트는 정적 파일에 대해 동일한 디렉토리 구조를 사용합니다.
li a {
color: green;
}
<link href="main.css" rel="stylesheet">
와 같이 사용한다. 우린 그 '경로'를 하드코딩하지 않고, 변수값을 이용해 할당할 것 이다. {% load static %}
... <!-- 생략 -->
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">
... <!-- 생략 -->
다음으로, 이미지 용 하위 디렉토리를 만듭니다. polls/static/polls/ 디렉토리에 images 서브 디렉토리를 만듭니다. 이 디렉토리 안에 background.gif라는 이미지를 넣으십시오. 즉, 이미지를 polls/static/polls/images/background.gif에 넣으십시오.
그런 다음, 스타일 시트(polls/static/polls/style.css)에 다음을 추가하세요.
/* polls/static/polls/style.css */
body {
background: white url("images/background.png") no-repeat;
}
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
'/var/www/static/',
]
핵심은 이거다. static file을 배포할때 '어떻게' 포함시켜야 하는가!
정적 파일을 프로덕션에 넣는 기본 개요는 두 단계로 구성됩니다. 정적 파일이 변경될 때 :djadmin:〉collectstatic〉
명령을 실행한 다음 수집된 정적 파일 디렉토리(:seting:〉).STATIC_ROOT〉)
를 정적 파일 서버로 이동하여 제공합니다. 설정에 따라 달라집니다.STATICFILES_STORY’에서 파일을 수동으로 새 위치로 이동하거나 :func:〉post_process <django.contrib.staticfiles.staticfiles.storage
로 이동해야 할 수 있습니다. 정적 파일 저장소입니다.
튜토리얼이 아닌, 뒤에 이어지는 시리즈에 대해 '스토리지(S3와 같은)'와 연결 지은 static file depoly에 대해 자세하게 작성할 것이다!