"1. 장고 스테틱 개요"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
30번째 줄: 30번째 줄:
 
|-
 
|-
 
|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 서비스용 설정] 문서를 참고해보자.
 
|}
 
|}
  

2021년 11월 23일 (화) 12:50 판

1 개요

이미지, 음원 등을 불러올 때 경로를 지정해주어야 하는데, 디렉터리에 저장된 파일을 불러오기 위한 기능이다.

이미지, CSS나 js같은 변하지 않는 정적 파일을 사용하기 위한 기능이다.(사용자가 올리는 파일들과 구분. 변하는 파일은 Media에서 관리한다.)

2 사전준비

2.1 경로지정

settings.py에서 경로를 지정해주어야 한다.

STATIC_URL = '/static/'  # 처음부터 기입되어 있는 값. 외부에서 접속할 URL 주소.
STATICFILES_DIRS = [ BASE_DIR / 'static', ]  # 프로젝트 전체에서 사용할 정적파일을 탐색할 경로를 넣어준다.(여러개 가능)
변수 기능
STATIC_URL 참조 URL을 어떻게 쓸 것인가.

static의 url root를 설정하는 것이라 생각하면 된다. 도메인/static/으로 접근하면 스테틱 디렉터리의 루트에 이를 수 있다. ('http://도메인/static/경로'를 검색하면 스태틱 디렉터리 하위에 접근할 수 있다.) 파일명이 asdf라면, 도메인/static/asdf 형태로 해당 파일에 접근할 수 있다.

<img src="{% static 'photo/asdf.jpg' %}"> 형태로 작성하면 경로는 도메인/static/photo/asdf.jpg 로 변경된다.

STATICFILES_DIRS [DEBUG모드에선 이걸 참조해 보여준다.] 개별 앱 외에 전체 static을 저장하는 경로를 지정한다.

기본적으로 앱 하위의 static 디렉터리 안의 내용들을 읽지만, 위 속성에 BASEDIR/'static'을 등록함으로써 앱에 종속되지 않는 static을 관리할 수 있다.(탬플릿과 같은 요령.)

STATICFILES_DIRS = [BASE_DIR / 'static',] 형태로 추가하면 해당 디렉터리도 경로로 잡는다. 공통 static파일을 모으고 싶을 때 이처럼 사용한다.

STATIC_ROOT 서비스를 할 때 이 안에서 참조해 보여준다. 서비스 서버에서 사용할 설정을 해준다. 서비스용 설정 문서를 참고해보자.

3 사용

탬플릿에서 사용한다.

{% load static %}

src="{% static '경로/이미지.png' %}" 형태로 사용할 수 있다.

3.1 별칭 지정하기.

{% load static %}

{% static '경로/이미지.png' as button %}

위와 같은 형태로 불러와 src="{{button}}" 형태로 사용할 수 있다.

4 관련 에러

cannot import name 'aPth' from 'pathlib' (C:\....\Python\Python39\lib\pathlib.py)

업데이트 하면서 생긴 오타인 듯하다. import하는 모듈을 aPth가 아닌, Path로 바꿔주면 잘 작동한다.