django-pipeline은 배포에 있어 static 파일들의 업데이트를 손쉽게 해주는 장점이 좋은 파이썬 패키지입니다.


1. 설치

pip install django-pipeline
cs


pip를 이용해서 설치합니다.


INSTALLED_APPS = (
    'pipeline',
)
cs


settings.py 에 앱을 추가합니다.


STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
cs
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'pipeline.finders.PipelineFinder',
)
cs


따로 static 파일들의 저장경로와 static 파일을 찾는 finder를 설정해줍니다. 기본 설정이 끝납니다.


2. 세부 설정


그다음 staticfiles_dir 을 참조하여 다른 설정들도 해야 합니다.

staticfiles_dir 과 비슷한 구조입니다.


PIPELINE = {
    'new_css': {
        'css': {
            'source_filenames': (
              'css/css_1.css',
              'css/css_help/*.css',
              'css/css_2.css'
            ),
            'output_filename''css/new_css_output.css'
        },
    },
    'new_js': {
        'js': {
            'source_filenames': (
              'js/jquery.js',
              'js/js_help/*.js',
              'js/js_1.js',
            ),
            'output_filename''js/new_js_output.js',
        }
    }
}
cs


이 것을 settings.py에 추가합니다. django-pipeline은 이 정보를 바탕으로 작업을 수행합니다. 일반 collectstatic 과정과 비슷하지만 다른 점은 pipeline을 통해 만들어진 static파일들은 각기 특이한 이름을 갖게 된다는 것입니다. 그러므로 브라우저가 파일을 로드할 시에 이름이 중복되기 때문에 추가로 로드하지 않는 경우를 막을 수 있습니다.


3. 사용법

그 후 template파일을 정리하면 됩니다. template파일에서도 불러오는 방법이 존재합니다.


{% load pipeline %}
{% new_css 'css' %}
{% new_js 'js' %}
cs

이렇게 불러오게 됩니다.

pipeline을 이용해서 collectstatic이 진행된 결과를 불러오게 됩니다.


여기서 settings.py에서 PIPELINE={} 안의 이름들을 지정할 때 혼동되기 쉽습니다.

그러므로 나중에 설정할 때는 편리하게 알아보기 쉬운 이름으로 설정하는 것이 좋을 것 같습니다.


+ Recent posts