【问题标题】:Plotly dash in docker do not load assetsdocker中的绘图破折号不加载资产
【发布时间】:2019-02-15 10:03:46
【问题描述】:

我有一个多页仪表板应用程序,在本地运行时按预期工作:

waitress-serve --listen=0.0.0.0:80 web_app.wsgi:application

因此资产文件夹中的所有资产都正确加载,图像 ar 加载了src=app.get_asset_url('xyz.png') 并将app.css.config.serve_locally 设置为true,如此处所示,一切都加载了working

但是在 docker 容器中加载相同的应用程序时,资产不会加载 not working,因此本地 css 也不会加载。

已检查 docker 中的文件和文件夹,一切都符合预期。

我想我在某个地方遗漏了一些东西,但没有找到什么,关于如何让它工作的任何建议?

Dockerfile

FROM python:3

RUN apt-get update && apt-get install -qq -y \
build-essential libpq-dev --no-install-recommends

ENV INSTALL_PATH /gtg_analytics-master
ENV PYTHONPATH "${PYTHONPATH}:$INSTALL_PATH/web_app"
RUN mkdir -p $INSTALL_PATH

WORKDIR $INSTALL_PATH

COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

COPY web_app $INSTALL_PATH/web_app

码头工人撰写:

version: "3"

services:
web_app:
image: patber/gtg:dev
build: .
command: >
  waitress-serve --listen=0.0.0.0:80
  web_app.wsgi:application
environment:
  PYTHONUNBUFFERED: 'true'
volumes:
  - '.:/web_app'
ports:
  - '80:80'

【问题讨论】:

  • 您能分享一下您是如何构建 docker 镜像的吗?
  • 使用 docker 文件更新帖子

标签: docker plotly wsgi plotly-dash waitress


【解决方案1】:

找到了 CSS 文件 here 的解决方案。

app.css.append_css({"external_url": "./assets/xyz.css"})

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,这里提供的解决方案是正确的,但您还需要添加:

    app.css.config.serve_locally = False
    

    此外,您可以通过以下方式添加样式表,而不是附加:

    external_stylesheets=["./assets/stylesheet.css"]
    app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
    

    【讨论】:

      【解决方案3】:

      这不是很好,但如果您需要提供除 css 以外的其他内容,您还可以使用外部源选项:

      app = dash.Dash(
          __name__,
          assets_external_path='http://your-external-assets-folder-url/'
      )
      

      我用一张图片遇到了这个问题,这是我所知道的最好的(当前 = 20 年 1 月 30 日)解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-30
        相关资源
        最近更新 更多