Сюжетный штрих в докере не загружает активы

У меня есть многостраничное приложение для тире, которое работает должным образом при локальном запуске с помощью:

waitress-serve --listen = 0.0.0.0: 80 web_app.wsgi: приложение

поэтому все ресурсы в папке с ресурсами загружаются правильно, изображения загружаются с src=app.get_asset_url('xyz.png') и для app.css.config.serve_locally установлено true, как показано здесь, все загружается работает

Но при загрузке того же приложения в контейнере докера ресурсы не загружаются. не работает и поэтому локальный CSS тоже не загружается.

Проверили файлы и папки в докере, и все, как ожидается.

Думаю, я что-то где-то упускаю, но не нахожу каких-либо предложений о том, как заставить его работать?

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'

person Patrik    schedule 15.02.2019    source источник
comment
не могли бы вы рассказать, как вы создали образ докера?   -  person andolsi zied    schedule 15.02.2019
comment
Обновленный пост с файлами докеров   -  person Patrik    schedule 15.02.2019


Ответы (3)



Я столкнулся с той же проблемой, и приведенное здесь решение правильное, но вам также нужно добавить:

app.css.config.serve_locally = False

кроме того, вместо добавления вы можете добавить таблицу стилей:

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

Это не очень хорошо, но если вам нужно обслуживать что-то другое, кроме css, вы также можете использовать параметры внешних источников:

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

Я столкнулся с этим с изображением, и это лучшее (текущее = 30 января '20) решение, о котором я знаю.

person Dan Runfola    schedule 30.01.2020