Heroku: Получить localhost net :: ERR_CONNECTION_REFUSED при развертывании приложения - PullRequest
1 голос
/ 27 апреля 2019

Я запускаю 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 локально, развернутое приложение запускается без проблем;нет пропущенного аудио.

Я ценю любого, кто просветит меня в этой теме, которую я только начал.

enter image description here

1 Ответ

0 голосов
/ 27 апреля 2019

Согласно https://devcenter.heroku.com/articles/s3, Кажется, что Heroku не может размещать статические файлы, а общедоступная корзина s3 удовлетворяет мои потребности.

...