Плотно черточка в докере не грузит активы

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

официантка-подача --listen=0.0.0.0:80 web_app.wsgi: приложение

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

Но при загрузке одного и того же приложения в Docker-контейнеры ресурсы не загружаются и не работают, поэтому локальный 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

докер-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'

0 ответов

Нашел решение для файлов CSS здесь.

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

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

app.css.config.serve_locally = False

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

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

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

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

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

Другие вопросы по тегам