为什么不是';我的flask应用程序上的一个小部件在本地出现时是否会出现在EC2实例上?

为什么不是';我的flask应用程序上的一个小部件在本地出现时是否会出现在EC2实例上?,flask,amazon-ec2,bokeh,Flask,Amazon Ec2,Bokeh,我正在尝试使用elastic beanstalk在aws EC2实例上部署flask应用程序。flask应用程序提供了一个Bokeh小部件,该小部件被读入Jinja2模板 在本地计算机上运行时,我使用app.run(host='0.0.0.0',port=8000)运行flask应用程序。我在“”处为小部件创建服务器文档。当我打开带有小部件的页面时。我还可以打开localhost:5006/widget,我将看到widget本身 现在,当我在elastic beanstalk上部署它时,我将小部

我正在尝试使用elastic beanstalk在aws EC2实例上部署flask应用程序。flask应用程序提供了一个Bokeh小部件,该小部件被读入Jinja2模板

在本地计算机上运行时,我使用app.run(host='0.0.0.0',port=8000)运行flask应用程序。我在“”处为小部件创建服务器文档。当我打开带有小部件的页面时。我还可以打开localhost:5006/widget,我将看到widget本身

现在,当我在elastic beanstalk上部署它时,我将小部件的服务器文档更改为“:5006/widget”,并在host=”上运行应用程序。如果我在浏览器中打开“:5006/widget”,它将再次显示我的widget,该widget可以正常交互。但是,当我转到它时,它将显示一个呈现所有html的页面,但小部件不可见。此外,当我与修改小部件的页面交互时,我可以转到:5006/widget,更改将显示在小部件上。看起来小部件工作正常,可以与网页交互,但我就是不明白为什么小部件不会显示在主页上

我已经在5006和8000上打开了tcp的入站端口,控制台中没有显示任何错误。什么会阻止小部件显示

编辑:试图澄清应用程序是如何嵌入的:

doc = bokeh.plotting.curdoc()
def createWidget(doc):
    p = figure(...)
    doc.add_root(p)

@app.route('/', methods=['GET', 'POST'])
def bkapp_page():
    widget = server_document('<ec2-ip>:5006/widget')
    return render_template("index.html", widget=widget, template="Flask")

def bk_worker():
    server = Server({'/widget': createWidget, io_loop=IOLoop(), allow_websocket_origin=["*"])
    server.start()
    server.io_loop.start()

from threading import Thread
thread = Thread(target=bk_worker)
thread.start()

if __name__ == '__main__':
    app.run(host=<ec2-ip>, port=5000)
doc=bokeh.plotting.curdoc()
def createWidget(文档):
p=图(…)
文件添加根(p)
@app.route('/',方法=['GET','POST'])
def bkapp_页面():
widget=server\u文档(':5006/widget')
返回呈现模板(“index.html”,widget=widget,template=“Flask”)
def bk_worker():
server=server({'/widget':createWidget,io_loop=IOLoop(),allow_websocket_origin=[“*”]))
server.start()
server.io_loop.start()
从线程导入线程
线程=线程(目标=bk_工作线程)
thread.start()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(主机=,端口=5000)
然后在index.html中有{widget | safe}}行。在本地运行时,我使用server_document(“”)和app.run(host=0.0.0.0,port=5000)


编辑:正如bigreddot所指出的,如果页面的url使用https,则源代码必须使用https。

浏览器JS控制台中是否有任何消息?是否存在任何bokeh服务器日志错误?是否设置了
--allow websocket orgin
以允许来自嵌入页面的连接?JS控制台中没有消息,设置为Verbose。没有bok我可以看到eh服务器日志错误(在ec2中,这将被放在日志正确吗?)我设置--allow websocket origin=“*”允许所有。我可以在页面上看到小部件,当我在页面上交互更改清单时,它只是没有显示在主页上,我看不到一条跟踪指示它为什么没有显示。请更新您的问题,详细说明您如何将Bokeh服务器内容嵌入Flask页面更新以显示它是如何嵌入的我不知道如果您发现有任何问题,恐怕我不确定在这一点上还有什么建议。实际的预期脚本是否进入呈现模板?