Bokeh の「create_html_snippet」メソッドを使用して、パンダ/シーボーン プロットを Web ページに表示しようとしています。
テストとして、@rpazyaquian のデモ リポジトリ ( https://github.com/rpazyaquian/bokeh-flask-tutorial/wiki/Rendering-Bokeh-plots-in-Flask ) を複製しました。残念ながら、リポジトリが作成されてからボケが変更されたため、機能しません。
ページ上のメインの HTML 出力は、一意のボケ ファイル名が明らかに異なることを除いて、まったく同じです。
全体的な唯一の違いは、bokeh によって生成された *.embed.js ファイルにあります。以下の抜粋に示すように、そのファイルのホスト/静的パス変数は正しく機能していないようです。組み込みの Flask 開発サーバーと gunicorn の両方でテスト済み。
@rpazyaquian のHeroku サイトの作業バージョンの上部は次のとおりです。
var host = "";
var staticRootUrl = "http://localhost:5006/bokeh/static/";
if (host!=""){
staticRootUrl = host + "/static/";
var bokehJSUrl = window.location.protocol + "//" + staticRootUrl + "js/bokeh.js";
}
else {
bokehJSUrl = staticRootUrl +"js/bokeh.js";
}
Heroku 0.4 を使用した、動作しないローカル バージョンを次に示します。
var host = "";
var staticRootUrl = "http://localhost:5006/bokeh/static/";
if (host!=""){
staticRootUrl = "//" + host + "/bokehjs/static/";
var bokehJSUrl = staticRootUrl + "js/bokeh.js";
}
else {
bokehJSUrl = staticRootUrl +"js/bokeh.js";
}
明らかな問題:
- ホストはそうではありません
http://localhost:5006
.devhttp://127.0.0.1:5000/
サーバーを使用しているとき、またはgunicorn / nginxを使用している場合に選択したものは何でもです. - 「bokehjs」フォルダーがどこに設定されているのかわかりませんが、ここでは関係ないようです。
これを修正できる Bokeh の変更点に関するアイデアはありますか? または、別の方法を使用して Flask テンプレートを介して Bokeh プロットを正常に提供している人は誰でも - より良いルートがあるかどうか教えてください。グラフの HTML スニペットを返してテンプレートに出力しようとしています。