Websocket 问题阻止部署在 heroku 中的散景应用程序加载到网站中
Websocket issue preventing bokeh app deployed in heroku from loading in website
我在 heroku 中部署了一个散景应用程序。我想把它嵌入到一个网站中,但是我没有这样做。
应用程序在这里:
https://ckgsb-final.herokuapp.com/cn_ckgsb
这是要在网站中使用的脚本:
from bokeh.embed import server_document
script = server_document("https://ckgsb-final.herokuapp.com/cn_ckgsb")
print(script)
<script id="1014">
(function() {
const xhr = new XMLHttpRequest()
xhr.responseType = 'blob';
xhr.open('GET', "https://ckgsb-final.herokuapp.com/cn_ckgsb/autoload.js?bokeh-autoload-element=1014&bokeh-app-path=/cn_ckgsb&bokeh-absolute-url=https://ckgsb-final.herokuapp.com/cn_ckgsb", true);
xhr.onload = function (event) {
const script = document.createElement('script');
const src = URL.createObjectURL(event.target.response);
script.src = src;
document.body.appendChild(script);
};
xhr.send();
})();
</script>
heroku 应用程序的 procfile 是:
web: bokeh serve --port=$PORT --allow-websocket-origin=ckgsb-final.herokuapp.com --address=0.0.0.0 --use-xheaders cn_ckgsb.py
我知道问题出在 websocket 上。我在 procfile 和脚本代码中尝试了应用程序 url 的各种组合,但未能成功修复它。
谢谢。
您还需要为嵌入站点的 URL 配置允许的 websocket 来源。当用户导航到 mysite.org 并且那里的页面尝试嵌入 Bokeh 应用程序时,Bokeh 服务器接收到的 HTTP 来源将为 mysite.org 。如果 Bokeh 服务器未配置为允许该来源,请求将被拒绝。
我在 heroku 中部署了一个散景应用程序。我想把它嵌入到一个网站中,但是我没有这样做。
应用程序在这里:
https://ckgsb-final.herokuapp.com/cn_ckgsb
这是要在网站中使用的脚本:
from bokeh.embed import server_document
script = server_document("https://ckgsb-final.herokuapp.com/cn_ckgsb")
print(script)
<script id="1014">
(function() {
const xhr = new XMLHttpRequest()
xhr.responseType = 'blob';
xhr.open('GET', "https://ckgsb-final.herokuapp.com/cn_ckgsb/autoload.js?bokeh-autoload-element=1014&bokeh-app-path=/cn_ckgsb&bokeh-absolute-url=https://ckgsb-final.herokuapp.com/cn_ckgsb", true);
xhr.onload = function (event) {
const script = document.createElement('script');
const src = URL.createObjectURL(event.target.response);
script.src = src;
document.body.appendChild(script);
};
xhr.send();
})();
</script>
heroku 应用程序的 procfile 是:
web: bokeh serve --port=$PORT --allow-websocket-origin=ckgsb-final.herokuapp.com --address=0.0.0.0 --use-xheaders cn_ckgsb.py
我知道问题出在 websocket 上。我在 procfile 和脚本代码中尝试了应用程序 url 的各种组合,但未能成功修复它。
谢谢。
您还需要为嵌入站点的 URL 配置允许的 websocket 来源。当用户导航到 mysite.org 并且那里的页面尝试嵌入 Bokeh 应用程序时,Bokeh 服务器接收到的 HTTP 来源将为 mysite.org 。如果 Bokeh 服务器未配置为允许该来源,请求将被拒绝。