"1. 장고 스테틱 개요"의 두 판 사이의 차이
잔글 |
(→사용) |
||
(같은 사용자의 중간 판 3개는 보이지 않습니다) | |||
10번째 줄: | 10번째 줄: | ||
settings.py에서 경로를 지정해주어야 한다.<syntaxhighlight lang="python"> | settings.py에서 경로를 지정해주어야 한다.<syntaxhighlight lang="python"> | ||
STATIC_URL = '/static/' # 처음부터 기입되어 있는 값. 외부에서 접속할 URL 주소. | STATIC_URL = '/static/' # 처음부터 기입되어 있는 값. 외부에서 접속할 URL 주소. | ||
− | STATICFILES_DIRS = [ | + | STATICFILES_DIRS = [ BASE_DIR / 'static', ] # 프로젝트 전체에서 사용할 정적파일을 탐색할 경로를 넣어준다.(여러개 가능) |
+ | STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', | ||
+ | 'django.contrib.staticfiles.finders.AppDirectoriesFinder',] # 앱 안에서 탬플릿을 관리하듯, 앱 안에 static 디렉터리를 놓고 앱별로 관리할 때 검색하게 해준다. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{| class="wikitable" | {| class="wikitable" | ||
30번째 줄: | 32번째 줄: | ||
|- | |- | ||
|STATIC_ROOT | |STATIC_ROOT | ||
− | | | + | |서비스를 할 때 이 안에서 참조해 보여준다. 서비스 서버에서 사용할 설정을 해준다. [http://id8436.iptime.org:2786/mediawiki/index.php/2._%EC%9E%A5%EA%B3%A0_%EC%8A%A4%ED%85%8C%ED%8B%B1_%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9A%A9_%EC%84%A4%EC%A0%95 서비스용 설정] 문서를 참고해보자. |
|} | |} | ||
=사용= | =사용= | ||
− | |||
+ | == 탬플릿에서 == | ||
{% load static %} | {% load static %} | ||
45번째 줄: | 47번째 줄: | ||
위와 같은 형태로 불러와 src="<nowiki>{{button}}</nowiki>" 형태로 사용할 수 있다. | 위와 같은 형태로 불러와 src="<nowiki>{{button}}</nowiki>" 형태로 사용할 수 있다. | ||
+ | |||
+ | == 뷰에서 == | ||
+ | |||
+ | = 관련 에러 = | ||
+ | cannot import name 'aPth' from 'pathlib' (C:\....\Python\Python39\lib\pathlib.py) | ||
+ | |||
+ | 업데이트 하면서 생긴 오타인 듯하다. import하는 모듈을 aPth가 아닌, Path로 바꿔주면 잘 작동한다. | ||
+ | |||
[[분류:4. 장고 스테틱]] | [[분류:4. 장고 스테틱]] |
2022년 11월 11일 (금) 10:54 기준 최신판
1 개요[편집 | 원본 편집]
이미지, 음원 등을 불러올 때 경로를 지정해주어야 하는데, 디렉터리에 저장된 파일을 불러오기 위한 기능이다.
이미지, CSS나 js같은 변하지 않는 정적 파일을 사용하기 위한 기능이다.(사용자가 올리는 파일들과 구분. 변하는 파일은 Media에서 관리한다.)
2 사전준비[편집 | 원본 편집]
2.1 경로지정[편집 | 원본 편집]
settings.py에서 경로를 지정해주어야 한다.
STATIC_URL = '/static/' # 처음부터 기입되어 있는 값. 외부에서 접속할 URL 주소.
STATICFILES_DIRS = [ BASE_DIR / 'static', ] # 프로젝트 전체에서 사용할 정적파일을 탐색할 경로를 넣어준다.(여러개 가능)
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',] # 앱 안에서 탬플릿을 관리하듯, 앱 안에 static 디렉터리를 놓고 앱별로 관리할 때 검색하게 해준다.
변수 | 기능 |
---|---|
STATIC_URL | 참조 URL을 어떻게 쓸 것인가.
static의 url root를 설정하는 것이라 생각하면 된다.
|
STATICFILES_DIRS | [DEBUG모드에선 이걸 참조해 보여준다.] 개별 앱 외에 전체 static을 저장하는 경로를 지정한다.
기본적으로 앱 하위의 static 디렉터리 안의 내용들을 읽지만, 위 속성에 BASEDIR/'static'을 등록함으로써 앱에 종속되지 않는 static을 관리할 수 있다.(탬플릿과 같은 요령.)
|
STATIC_ROOT | 서비스를 할 때 이 안에서 참조해 보여준다. 서비스 서버에서 사용할 설정을 해준다. 서비스용 설정 문서를 참고해보자. |
3 사용[편집 | 원본 편집]
3.1 탬플릿에서[편집 | 원본 편집]
{% load static %}
src="{% static '경로/이미지.png' %}" 형태로 사용할 수 있다.
3.1.1 별칭 지정하기.[편집 | 원본 편집]
{% load static %}
{% static '경로/이미지.png' as button %}
위와 같은 형태로 불러와 src="{{button}}" 형태로 사용할 수 있다.
3.2 뷰에서[편집 | 원본 편집]
4 관련 에러[편집 | 원본 편집]
cannot import name 'aPth' from 'pathlib' (C:\....\Python\Python39\lib\pathlib.py)
업데이트 하면서 생긴 오타인 듯하다. import하는 모듈을 aPth가 아닌, Path로 바꿔주면 잘 작동한다.