【问题标题】:Javascript rendering in tornado webserver龙卷风网络服务器中的 Javascript 渲染
【发布时间】:2011-09-03 18:26:41
【问题描述】:

在下面的代码 sn-p 中,我试图将来自 Tornado 服务器的 JavaScript 文件添加到 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)

by params['CORE_SCRIPTS'] = DEBUG_SCRIPTS 我试图在 HTML 中添加 &lt;script&gt; 标记,但它被解析为生成的文本

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

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

【问题讨论】:

    标签: javascript python tornado web.py


    【解决方案1】:

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

    如果你真的希望文件包含在head标签中,你可以简单地在你的模板的head标签中输出params['CORE_SCRIPTS']的值:

    {% raw params['CORE_SCRIPTS'] %}
    

    【讨论】:

    • 感谢马恩!它的工作。但即使我用javascript_files 做了,它也没有附加到身体上。你知道任何实施的例子吗?第二点 '%' (我的意思是 '%' n '{}' 之间的区别)和 'raw' 在这里是什么意思?
    • 我链接到的 UIModules 文档中有一个示例。您需要实际使用模板中的模块,例如{% module Entries(entry) %}.
    • 关于你的第二个问题:{{ foo }}在模板中输出一个变量,{% foo %}调用函数foo。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2014-08-02
    相关资源
    最近更新 更多