在龙卷风webserver中的Javascript渲染

时间:2011-09-03 18:26:42

标签: javascript python tornado web.py

在下面的代码片段中,我尝试在<HEAD>标记的HTML文件中添加Tornado服务器中的JavaScript文件。

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)

by params['CORE_SCRIPTS'] = DEBUG_SCRIPTS我试图在HTML中添加<script>标记,但它会在生成的文本中进行解析

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

所以我在tornado specs中遇到了javascript_files()方法,但我没有得到任何有关其实现的示例。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

javascript files仅适用于UIModules。这种方式包含的Javascript文件会附加到正文标记结尾之前的页面,但不会在head标记中。

如果您真的想要包含在head标记中的文件,只需在模板的head标记中输出params['CORE_SCRIPTS']的值:

{% raw params['CORE_SCRIPTS'] %}