Docker中的破折号不会加载资产

时间:2019-02-15 10:03:46

标签: docker plotly wsgi plotly-dash waitress

我有一个多页破折号应用程序,该应用程序在本地运行时可以按预期工作:

  

侍应生--listen = 0.0.0.0:80 web_app.wsgi:应用程序

因此,资产文件夹中的所有资产均正确加载,图像已加载src=app.get_asset_url('xyz.png'),并将app.css.config.serve_locally设置为true,如下所示,所有内容均加载working < / p>

但是在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

docker-compose:

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'

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

System.out.println("Your reservation has been successfully booked for "+startDate+" until "+endDate);
            break;

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

app.css.config.serve_locally = False

答案 2 :(得分:0)

这不是很好,但是如果您需要提供除CSS之外的其他服务,则还可以使用外部来源选项:

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

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