Heroku:在部署应用程序时获取 localhost net::ERR_CONNECTION_REFUSED
Heroku: Get localhost net::ERR_CONNECTION_REFUSED when app deployed
我正在 运行宁 app.py
有两个线程,一个用于 dash 应用程序,另一个用于 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
。特别是,我在本地 audios/
中有 .wav
个文件,并且 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
,部署的应用程序 运行 没有问题;没有丢失的音频播放。
感谢任何在我刚刚开始的这个主题上启发我的人。
根据https://devcenter.heroku.com/articles/s3,Heroku似乎无法托管静态文件,而s3 public bucket可以满足我的需求。
我正在 运行宁 app.py
有两个线程,一个用于 dash 应用程序,另一个用于 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
。特别是,我在本地 audios/
中有 .wav
个文件,并且 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
,部署的应用程序 运行 没有问题;没有丢失的音频播放。
感谢任何在我刚刚开始的这个主题上启发我的人。
根据https://devcenter.heroku.com/articles/s3,Heroku似乎无法托管静态文件,而s3 public bucket可以满足我的需求。