2014-02-24 3 views
1

Backbone/Django 응용 프로그램을 만들고 있는데 백본보기에서 다른 파일에있는 템플릿을 구현하는 방법을 알고 싶습니다. 레일에서 나는 Django-Pipeline 를 사용하여 동일한 할 수 있어야 내가 지금까지 내가 그때 이해JST through Django-Pipeline

-js 
    -backbone 
    -templates 
     template1.jst 
     template2.jst 

같은 폴더 구조를 가질 수 JST를 사용하여 사용하고 있지만 구현이 어려운 찾을 수 있습니다.

settings.py

STATICFILES_STORAGE = "pipeline.storage.PipelineStorage" 

PIPELINE_CSS_COMPRESSOR = None 
PIPELINE_JS_COMPRESSOR = None 

PIPELINE_JS = { 
    'application': { 
    'source_filenames': (
     'js/backbone/templates/**/*.jst', 
    ) 
    } 
} 

에 다음 줄을 추가하고 내가이 나를 JST 객체를 통해 내 템플릿을 참조 할 수 있도록 할 생각

{% load compressed %} 
{% compressed_js 'application' %} 

을 base.html이 추가 클라이언트이지만 정의되지 않았습니다. Django-Pipeline의 목적을 오해 했습니까? 아니면 구성에 뭔가가 누락 되었습니까?

+0

여기에 명시된대로 'output_filename'을 아무 곳에 나 정의했습니다. http://django-pipeline.readthedocs.org/en/latest/templates.html – bejonbee

답변

0

'js/backbone/templates/.jst'을 'js/backbone/templates/* /*.jst'로 추가하면 하위 폴더의 템플릿 만 일치합니다.

2

아니요, 당신은 django-pipeline을 오해하지 않았습니다. 백본 코드의 자바 스크립트 템플릿에 액세스 할 수 있습니다. 내가 대답하기 전에 장고 - 파이프 라인 문서가 무엇을 말하는지 살펴 보자.

파이프 라인을 사용하면 자바 스크립트 뷰와 함께 자바 스크립트 템플릿을 사용할 수 있습니다. 이제 이러한 자바 스크립트 템플릿을로드 할 수

PIPELINE_JS = { 
    'templates': { 
    'source_filenames': (
     'js/templates/**/*.jst', 
     ), 
    'output_filename': 'js/templates.js' 
    } 
} 

:처럼 자바 스크립트 템플릿을 사용하려면, 단지

그래서 당신은 설정에서 파이프 라인에 템플릿을 추가 할 수 있습니다 PIPELINE_JS 그룹에 추가 파일 귀하의 브라우저.

참고 : 템플릿을 사용하는 자바 스크립트 코드를로드하기 전에 템플릿을로드해야합니다. 그렇지 않으면 정의되지 않은 오류가 발생합니다.

{% load compressed %} 
{% compressed_js 'templates' %} 
{% compressed_js 'other_backbone_files' %} 

이제 문서 말 :

그것은 window.JST를 통해 자바 스크립트 코드에서 사용할 수

그래서 당신은 '창'라는 이름의 전역 객체를해야합니다 그리고 당신은 것입니다 'JST'속성을 사용하여 템플릿에 액세스 할 수 있어야합니다. JST 속성의 값은 다른 자바 스크립트 객체입니다. 이 개체의 속성은 템플릿의 이름이며 그 값은 템플릿입니다. 템플릿 이름은 설정 파일에 템플릿을 포함시킨 방법에 따라 다릅니다. 설정에서 파일을 경우

예를 들어, 당신은 템플릿 포함 :

'source_filenames': (
     'js/templates/**/*.jst', 
     ) 

을 당신은 'JS/템플릿/응용 프로그램/바닥 글에서 템플릿을했다.JST ', 다음과 같은 방식으로 자바 스크립트 코드에서 템플릿에 액세스 할 수 있습니다

template: window.JST['app_footer'] 

을 또는 당신은 같은 한 경우 :

'source_filenames': (
     'js/templates/app/*.jst', 
     ) 
OR 
'source_filenames': (
     'js/templates/app/footer.jst', 
     ) 

그리고 당신은 템플릿했다'JS/템플릿/응용 프로그램을 /footer.jst ', 다음과 같은 방식으로 자바 스크립트 코드에서 템플릿에 액세스 할 수 있습니다 : 첫 번째에서 템플릿의 이름을 포함 할 필요가

template: window.JST['footer'] 

주의를'* '

아직도 잘 모르겠 으면 자바 스크립트 콘솔의 window.JST 개체를 검사하여 해당 속성을 검사하십시오.

당신이 'JST'이외의 다른 속성 이름을 사용하려는 경우, 당신은 당신이 될 것 템플릿에 액세스 할 수 있습니다 지금

PIPELINE_TEMPLATE_NAMESPACE = 'window.Templates' 

당신의 settings.py에서 다음 설정을 사용하여 변경할 수 있습니다 window.JST가 아닌 window.Templates 객체