Рендеринг JavaScript в веб-сервере торнадо - PullRequest
1 голос
/ 03 сентября 2011

В следующем фрагменте кода я пытаюсь добавить файлы JavaScript с сервера Tornado в файл HTML в теге <HEAD>.

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)

от params['CORE_SCRIPTS'] = DEBUG_SCRIPTS Я пытался добавить тег <script> в HTML, но он анализируется в тексте, который генерирует

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

Итак, я наткнулся на метод javascript_files() в спецификации торнадо , но я не получаю никаких примеров о его реализации. Кто-нибудь может помочь?

1 Ответ

3 голосов
/ 04 сентября 2011

javascript files работает только с модулями UIM .Javascript-файлы, включенные таким образом, добавляются на страницу непосредственно перед концом тега body, но не в теге head.

Если вы действительно хотите, чтобы файл был включен в тег head, вы можете просто вывестизначение params['CORE_SCRIPTS'] в заголовке вашего шаблона:

{% raw params['CORE_SCRIPTS'] %}
...