Bokeh嵌入了自定义.css和.js

时间:2018-01-02 20:58:50

标签: python html css tornado bokeh

我试图破解tornado embedded app example以添加自定义css和js。我似乎无法正确地将css和js联系起来。我应该期望css和js文件在文档头中正常链接吗?

<head>
<link href="/static/css/custom.css" rel="stylesheet" type="text/css">
<script src="/static/js/custom.js"></script>
</head>

...或者我应该先使用bokeh custom static handler加载所有内容吗?

...或者我可以将它传递给indexhandler类似的那样:

class IndexHandler(RequestHandler):
    def get(self):
        template = env.get_template('embed.html')
        static = env.get_static('/css/style.css')
        script = server_document('default')
        self.write(template.render(script=script, template="Tornado", static=static))

供参考:

app
|__data
|__static
|    |__css
|       |__custom.css
|    |__js
|       |__custom.js
|__templates
|    |__embed.html
|__main.py

只是寻找一些一般指导。感谢。

2 个答案:

答案 0 :(得分:1)

bigreddot的回答是正确的,但我想补充一些细节。就我而言,我想访问/static/css的内容。您将需要以下内容:

from tornado.web import StaticFileHandler
import os.path as op

,然后在打开服务器时添加以下应用程序处理程序:

[(r'/static/css/(.*)', StaticFileHandler,
 {'path': op.normpath(op.dirname(op.abspath(__file__)) + r'/static/css')})]

这与其他任何应用程序处理程序一起传递给extra_patterns参数。

答案 1 :(得分:0)

在调用extra_patterns时,您会向Server添加类似内容:

(server_static_route, StaticFileHandler, { "path" : local_path_to_static_dir })

其中StaticFileHandler来自tornado.web