2012-06-29 2 views

답변

7

템플릿 /보기 호출 가능으로 할 수 있습니다. 그다지 다르지 않습니다. 나는 여전히 그런 콘텐츠 유형을 설정하는 것이 좋습니다.

from pyramid.view import view_config 

@view_config(name='javascript', renderer='templates/javascript.mako') 
def my_js_view(request): 
    request.response.content_type = 'application/javascript' 
    return {... params ...} 

다른보기와 크게 다르지 않습니다.

+0

request.response_content_type은 피라미드 1.0에 대한 속성 이었으나 사용되지 않았습니다. –

+0

맞습니까? 그 편집을위한 나의 사과; 그러나 OP가 버전을 지정하지 않았기 때문에 현재의 방법을 고수하는 것이 가장 좋습니다. :-) –

+0

@MartijnPieters 죄송합니다, 충분히 명확하게하지 않았습니다. 나는 실제로 북마크 릿을 작성하고 있는데, 북마크를 클릭하면 서버에서 자바 스크립트 코드가 생겨 즉시 실행된다. 여전히 템플릿을 사용해야합니까? – Jensen

3

무엇이 의 javascript? 동적으로 생성되었거나 정적입니까?

정적 일 때 static view을 사용하여 CSS 및 이미지처럼 게재하십시오.

동적 인 경우 template을 사용하여 javascript 파일을 생성하고 올바른 콘텐츠 유형으로 게재하십시오. 여기에 Chameleon text renderer를 사용하는 예입니다,하지만 당신은 물론 당신의 선호하는 템플릿 엔진을 사용할 수 있습니다 : 나는 확실히 브라우저를 만들기 위해 content_type attribute on the Response object을 설정

@view_config(name='generated_javascript', renderer='templates/generated_javascript.txt') 
def generated_javascript(request): 
    request.response.content_type = 'text/javascript' 
    # The returned dict holds items your template can access when 
    # generating the javascript. 
    return dict(foo='bar', spam='eggs') 

참고 생성 된 자바 스크립트를 인식한다.

템플릿은 다른 템플릿과 마찬가지로 반환 한 dict의 값과 추가로 system values의 값에 액세스 할 수 있습니다.

동적 JavaScript의 사용을 최소화하고 정적 JavaScript를 가능한 많이 제공하는 것이 가장 좋습니다. 동적 인 컨텍스트 정보는 생성 된 HTML에 실제로 포함되어야하며 정적 HTML은이를로드하여 사용할 수 있습니다. 정적 자바 스크립트는 모든 방문자가 캐싱 할 수 있으므로 성능이 크게 향상됩니다. 이를 달성하는 방법에 대한 정보는 Chameleon templates for javascript files?을 참조하십시오.

관련 문제