2011-09-03 9 views
1

다음 코드에서 JavaScript 파일을 토네이도 서버에서 <HEAD> 태그의 HTML 파일에 추가하려고합니다. params['CORE_SCRIPTS'] = DEBUG_SCRIPTS에 의해토네이도 웹 서버에서 자바 스크립트 렌더링

DEBUG_SCRIPTS = ''' <script src="src/main.js" type="text/javascript"></script> ''' 

class Entries(tornado.web.UIModule): 
    def javascript_files(self): 
    return 'src/main.js' 

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
    params = {} 
    params['CORE_SCRIPTS'] = DEBUG_SCRIPTS 
    path = os.path.join(os.path.dirname(__file__), 'index.html') 
    self.render(path, params=params) 

나는 HTML에서 <script> 태그를 추가하려고했지만 그것은

&lt;script type=&quot;text/javascript&quot; src=&quot;src/main.js&quot;&gt;&lt;/script&gt;

그래서 내가 tornado specsjavascript_files() 방법 우연히 생성 텍스트로 해석됩니다 그러나 나는받지 못했습니다 그 구현에 대한 모든 예제. 누구든지 도와 줄 수 있습니까?

답변

3

javascript filesUIModules에서만 작동합니다. 그런 식으로 포함 된 자바 스크립트 파일은 head 태그가 아닌 body 태그의 끝 부분에 페이지에 추가됩니다.

당신이 정말로 머리 태그에 포함 된 파일을 원하는 경우에, 당신이 할 수있는 템플릿의 헤드 태그 params['CORE_SCRIPTS'] 단순히 출력 값 :

{% raw params['CORE_SCRIPTS'] %} 
+0

감사 MAHN! 그 일. 하지만 'javascript_files'로 처리 했더니 몸체에 추가되지 않았습니다. 구현 사례를 알고 있습니까? 그리고 두 번째 지점 '%'('%'n '{}'의 차이)와 '원시'는 여기에 무엇을 의미합니까? –

+0

내가 링크 된 UIModules 문서에 예제가 있습니다. 템플릿에서 실제로 모듈을 사용해야합니다 (예 : '{% 모듈 엔트리 (엔트리) %}'. –

+2

두 번째 질문 :'{{foo}}'는 템플릿에서 변수를 출력하고, {% foo %}'foo '함수를 호출합니다. –

관련 문제