Kubernetes pod 中的 Plotly Dash 无法获取 IFrame 的资产

Plotly Dash in Kubernetes pod cannot get assets for IFrame

想法是在 Kubernetes 托管的 Plotly Dash 中的 html.iFrame 中显示 .html 文件。

该代码在本地按预期工作,但在尝试获取 pod (/project/assets/) 中的文件时遇到 404(在 K8s 日志中)。我已经进入吊舱检查,文件在那里。我检查了文件权限,它们与本地 (-rw-r--r--) 相同,父文件夹也具有相同的权限。我在/project/cache文件夹中还有一些其他文件可以通过dcc.Graph成功显示,说明io没问题。

100.64.109.71 - - [04/Feb/2022 02:41:58] "POST /_dash-update-component HTTP/1.1" 200 -
100.64.109.71 - - [04/Feb/2022 02:41:58] "GET /assets/country/datetime/filename.html HTTP/1.1" 404 -

Kubernetes html.iFrame 是否有我错过的独特之处?如果问题太简洁,我深表歉意,但我什至不确定从哪里或如何开始调试。

更新 1:找到有用的参考 (https://github.com/plotly/dash/issues/489)

解决了使用 srcDoc 而不是 src。

with open(f"assets/{filename}", "r") as f:
    html_content =  f.read()

content = html.Iframe(srcDoc=f"{html_content}", style={"height": "1067px", "width": "98%"})