I’m using panel.serve
to serve multiple apps.
Some of these apps need to display images. For various reasons it would be easier for me to serve them as a part of the application than serving them separately.
HOW DO I DO THAT?
According to https://docs.bokeh.org/en/latest/docs/user_guide/server.html#directory-format you can put static assets in a static
folder and they will be served with bokeh serve
.
Inspired by that I’ve tried setting up the following.
import panel as pn
def create_app():
return pn.Spacer(background="blue", sizing_mode="stretch_both", name="App2")
APP_ROUTES = {
"app1": create_app,
"app2": create_app,
}
pn.serve(APP_ROUTES, port=14033)
It gives me
but no image is served at
and not at the following either.
$ python app.py
Launching server at http://localhost:14033
WARNING:tornado.access:404 GET /app1/static/spinner_trading_analytics.gif (127.0.0.1) 1.00ms
WARNING:tornado.access:404 GET /favicon.ico (127.0.0.1) 1.00ms
WARNING:tornado.access:404 GET /app1/static/spinner_trading_analytics_light (127.0.0.1) 0.00ms
WARNING:tornado.access:404 GET /static/spinner_trading_analytics_light (127.0.0.1) 1.00ms
WARNING:tornado.access:404 GET /spinner_trading_analytics_light (127.0.0.1) 1.00ms
WARNING:tornado.access:404 GET /app1/spinner_trading_analytics_light (127.0.0.1) 0.00ms
WARNING:tornado.access:404 GET /app1/static/spinner_trading_analytics_light (127.0.0.1) 0.00ms
WARNING:tornado.access:404 GET /spinner_trading_analytics_light.gif (127.0.0.1) 0.00ms
WARNING:tornado.access:404 GET /static/spinner_trading_analytics_light.gif (127.0.0.1) 2.00ms
WARNING:tornado.access:404 GET /app1/static/spinner_trading_analytics_light.gif (127.0.0.1) 0.00ms
WARNING:tornado.access:404 GET /app1/spinner_trading_analytics_light.gif (127.0.0.1) 0.00ms