사용자가 서버로부터 데이터를 받아 자신의 화면에 보여지는 작업을 렌더링 이라고 한다. 화면이 보여지기 위해서는 이미 알고 있는 화면의 뷰를 담당하는 html css 그리고 어떤 액션을 주기 위한 자바스크립트까지 세가지가 필요로 한다.
이 세가지를 static 정적 파일이라고 한다.
규모가 커지면 스태틱 파일을 다른곳에다 저장을 한다고 한다.
장고에서는 서버와 static 파일을 분리할 수 있게 그 기능을 제공해 준다고 한다.
일단은 스태틱 파일이 분리가 가능하구나 정도만 인지 해보자.
static 의 기본 위치는 앱 내부에 static 디렉토리를 만들어서 관리를 해야 한다.
아래 번역기 돌린 내용.
템플릿과 마찬가지로 정적 파일을 (다른 여론조사 하위 디렉토리를 만드는 것이 아니라) 여론조사/정적(static)에 직접 저장하는 것은 피할 수 있을지 모르지만, 실제로는 좋지 않은 생각일 것이다. Django는 이름이 일치하는 사람을 찾는 첫 번째 정적 파일을 선택할 것이고, 만약 당신이 다른 어플리케이션에서 같은 이름의 정적 파일을 가지고 있다면, Django는 그것들을 구별할 수 없을 것이다. 우리는 짱고를 올바른 것으로 지목할 수 있어야 하고, 이것을 확실히 하기 위한 가장 좋은 방법은 그들의 이름을 붙이는 것이다. 즉, 정적 파일을 애플리케이션 자체의 이름을 가진 다른 디렉터리 안에 넣음.
그래서 polls/static/polls/style.css 경로를 이렇게 만들어 넣는다 이런 뜻인듯 싶다.
네임스페이스로 앱 이름을 갖는 디렉토리를 하나 더 생성해서 그 안에 css 파일을 넣어 준다.
polls/static/polls/style.css
li a {
color: green;
}
polls/static/polls/style.css 에 위와 같은 코드를 입력해 놓고,
polls/templates/polls/index.html 의 맨 위에 아래 사항을 추가하자.
polls/templates/polls/index.html
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">
그리고 아래를 추가 해 보자. 물론 이미지파일을 받아서 경로에 넣어야 겠지. 근데 경로에 넣는 방법은 몰라서 일단 폴더로 넣어버렸다..?
polls/static/polls/style.css
body {
background: white url("images/background.gif") no-repeat;
}
제대로 동작하는 것을 확인할 수 있다.