갈루아의 반서재

장고에서는 이미지, 자바스크립트, 그리고 css 등을 정적파일(static files)이라고 하는데,  django.contrib.staticfiles 을 통해 정적파일을 관리하게 된다.

그러면 아래에서 위의 정적파일(Configuring static files)을 구성하는 방법을 알아보자.


아래와 같이 settings.py 파일 INSTALLED_APPS 항목에  'django.contrib.staticfiles', 가 포함되어 있는지 확인한다.


1
2
3
4
5
6
7
8
9
INSTALLED_APPS = [
    'suit',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
cs


settings.py 파일 STATIC_URL 의 위치를 다음과 같이 정해준다.

아래와 같이 어플리케이션 안에 static 폴더를 만든다.

1
STATIC_URL = '/static/'
cs





/static/my_app/myexample.jpg 와 같이 하드코딩하거나  아래와 같이 정적 탬플릿 태그를 사용할 수도 있다.


* STATICFILES_STORAGE 관련내용

https://docs.djangoproject.com/en/1.9/ref/settings/#std:setting-STATICFILES_STORAGE


1
2
{% load staticfiles %}
    <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>
cs



위에서 만든 static 폴더내의 파일 저장한다.

예를 들면, 아래와 같이 파이어폭스 로고를 사이트 상단에 올려보자.




해당 파일을 다운로드 받아 앞에서 만든 static 폴더에 넣은 후 넣고자 하는 html 파일을 열고 6행와 같은 식으로 코드를 입력하면 된다.


1
2
3
4
5
6
{% load static %}
<!-- link rel="stylesheet" href="{% static "admin/css/base.css" %}" / -->
<title>{% block title %}site:bourne{% endblock %}</title>
</head>
<body>
<img src="{% static 'firefox-dev-ed_logo-only_1024.png' %}">
cs



* Deploying static files 관련내용

https://docs.djangoproject.com/en/1.9/howto/static-files/deployment/