Bokeh serve error 404 for js ressources

Hi all,

Might be out of my league here so apologies if I am missing something obvious. I developed a web app (GEEapp) locally which works beautifully and I am now trying to upload it on a web server to share it with some collaborators. The folder GEEapp contains a file named main.py and I run it using bokeh serve GEEapp from the root directory. One of the first function pulls data from a sqlite file and prints the expected output to the terminal, but right after - when the actual plotting starts - I get 404 errors on the javascript resources:

2020-06-08 16:03:08,161 404 GET /GEEappstatic/js/bokeh.min.js?v=57d29d5936e494351385d736f792154c (155.69.202.44) 1.89ms
2020-06-08 16:03:08,545 404 GET /GEEappstatic/js/bokeh-widgets.min.js?v=fdb1f42cceaade9062de57963cac654c (155.69.202.44) 1.18ms
2020-06-08 16:03:08,552 404 GET /GEEappstatic/js/bokeh-gl.min.js?v=c376f0736800259be44cb1aed39a6cc3 (155.69.202.44) 0.85ms
2020-06-08 16:03:08,563 404 GET /GEEappstatic/js/bokeh-tables.min.js?v=0a7f930d4b0805283dfba427bb3d0dae (155.69.202.44) 0.79ms

The result is an empty window, but cursor.title is read and displayed as my browser’s tab title (e.g. ‘Time series’ - see code below). Also I find the GEEappstatic very suspicious - shouldn’t it be GEEapp/static instead?

Is it a simple problem of path to the .js files that I need to fix or am I missing something?

Thanks a lot!


from bokeh.plotting import curdoc, figure, gmap
from bokeh.palettes import Spectral6, Category20, RdYlGn, Turbo, Cividis256
from bokeh.models import ColumnDataSource, GMapPlot, GMapOptions, HoverTool, TapTool, Range1d, Select, Dropdown, RadioGroup, LinearAxis, RangeSlider, MultiSelect, BooleanFilter, CDSView
from bokeh.models.widgets import Panel, Tabs, Div, DataTable, DateFormatter, TableColumn
from bokeh.tile_providers import get_provider, Vendors
from bokeh.models.glyphs import Circle
from bokeh.layouts import row, column
from bokeh.themes import built_in_themes
from bokeh.transform import linear_cmap
import bokeh.resources

where = 'WHERE eruption=\'Shinmoedake2011\''
data, points, eruption, events = loadData(where)

#...
# code
#...


curdoc().add_root(layout)
curdoc().title = "Time series"

Also asked on SO: https://stackoverflow.com/q/62294131/564509

Yes - thank you. It seems that it is a server-related problem.