嵌入自定义 .css 和 .js 的 Bokeh
Bokeh embedded with custom .css and .js
我正在尝试破解 tornado embedded app example 以添加自定义 css 和 js。我似乎无法正确地获得 css 和 js linked。我应该期望 css 和 js 文件在文档头中正常 link 吗?
<head>
<link href="/static/css/custom.css" rel="stylesheet" type="text/css">
<script src="/static/js/custom.js"></script>
</head>
...或者我应该先使用 bokeh custom static handler 加载所有内容?
...或者我可以像这样将它传递到索引处理程序中:
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
只是在寻找一些一般指导。谢谢。
您可以在调用 Server
时向 extra_patterns
添加这样的内容:
(server_static_route, StaticFileHandler, { "path" : local_path_to_static_dir })
其中 StaticFileHandler
来自 tornado.web
。
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
参数。
我正在尝试破解 tornado embedded app example 以添加自定义 css 和 js。我似乎无法正确地获得 css 和 js linked。我应该期望 css 和 js 文件在文档头中正常 link 吗?
<head>
<link href="/static/css/custom.css" rel="stylesheet" type="text/css">
<script src="/static/js/custom.js"></script>
</head>
...或者我应该先使用 bokeh custom static handler 加载所有内容?
...或者我可以像这样将它传递到索引处理程序中:
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
只是在寻找一些一般指导。谢谢。
您可以在调用 Server
时向 extra_patterns
添加这样的内容:
(server_static_route, StaticFileHandler, { "path" : local_path_to_static_dir })
其中 StaticFileHandler
来自 tornado.web
。
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
参数。