D005 에서는 Django에서 Static File을 어떻게 접근하는지에 대해서 

제가 알고 있는 것만 정리해두려고 합니다.



1. python manage runserver로 테스트하고 있는 경우


일단 python manage runserver를 사용하고 있는 경우는 개발하는 과정이라고 생각할 수 있습니다. 


일단 settings.py를 vi로 열어보세요.

Django1.7 기준으로 STATIC_URL= '/static/' 이 존재합니다.


만약 여러분이 Project에서 app을 만들었고, 그 app이 사용하는 static file 들이라면

app 내부에 static 폴더를 만들고, 그곳에서 static file들이 관리되길 원할 수 있죠. 


생성한 폴더가 /project/path/appName/static/ 라고 가정하면 settings.py에 아래 내용을 추가해서

static 파일들의 위치를 지정할 수 있습니다. 


STATICFILES_DIRS = (os.path.join(os.path.dirname(__file__),'static'),"/project/path/appName/static/",)


이전에 작성한 포스팅에서 TEMPLATE_DIRS에 대해서 간단하게 정리했는데요.

STATICFILES_DIRS도 TEMPLATE_DIRS와 마찬가지로 tuple 형태입니다. 


template 파일에서는 아래와 같이 static file 사용이 가능합니다. 


{% load staticfiles %}

<script src="{% static 'test.js' %}" type="text/javascript"></script>


2. apache web server를 기반으로 Django Project를 공개하는 경우


apache web server를 기반으로 하는 경우는 주로 개발이 완료되고 공개한 상태라고 생각됩니다.

테스트 과정에서 작성한 settings.py를 그대로 사용하려고 합니다.


ubuntu 12.04를 기준으로 apache 설정 파일 중 폴더에 대한 접근(허용/거부)이나 별명(alias) 등을 관리하는 파일은 

/etc/apache2/sites-available/default 위치에 존재합니다.

vi로 열어보시죠.


vi /etc/apache2/sites-available/default


아래와 같이 app 내부에 생성한 static file을 담고 있는 폴더에 Alias를 통해 사용하려고 합니다.


        Alias /static/ /project/path/appName/static

        <Directory /static/>

             Require all granted

        </Directory>


간단하게 제가 알고 있는 것만 정리해봤습니다~~~

더 편한 방법이 있으면 말씀해주세요 ^^


연말 잘 보내시구요 ^^


+ Recent posts