Я запускаю app.py
, который имеет два потока, один для приложения-черточки, а другой для HTTPServer
.
app = dash.Dash(__name__)
app.layout = html.Div( ... )
@app.callback( ... )
def do_something( ... ): ...
if __name__ == '__main__':
httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)
t1 = threading.Thread(target=httpd.serve_forever)
t2 = threading.Thread(target=app.run_server, kwargs={'debug': False})
t1.start()
t2.start()
Причина запуска HTTPServer
заключается в получении локальных файловс URL 'localhost:8000/audios/%s.wav' % clicked_index
и используйте URL как src
для html.Audio
.В частности, у меня есть .wav
файлы в локальном audios/
, а callback
включает зависание и запускает воспроизведение звука.
Он работает без проблем локально с python app.py
, но не в развернутом приложении- зависание вызывает только часть аудио .На скриншоте точка данных со скрытой информацией Piano
правильно воспроизводит звук, но в правом нижнем углу мы видим ERR_CONNECTION_REFUSED
для других 'localhost:8000/audios/%s.wav' % clicked_index
, которые не воспроизводят звук.Это не происходит локально.
Когда я проверяю файлы с помощью heroku run bash --app myapp
, все файлы wav находятся в audios/
.
И если я запускаю python -m http.server 8000
локально, развернутое приложение запускается без проблем;нет пропущенного аудио.
Я ценю любого, кто просветит меня в этой теме, которую я только начал.