3
votes

Le tiret tracé dans le menu fixe ne charge pas les actifs

J'ai une application de tableau de bord multi-pages qui fonctionne comme prévu lors de son exécution localement avec:

serveuse-serveuse --listen = 0.0.0.0: 80 web_app.wsgi: application

pour que tous les éléments du dossier des ressources se chargent correctement, les images sont chargées avec src = app.get_asset_url ('xyz.png') et ont défini app. css.config.serve_locally à true , comme indiqué ici tout se charge fonctionne

Mais lors du chargement de la même application dans un conteneur Docker, les éléments ne se chargent pas ne fonctionne pas et donc le css local ne se charge pas non plus.

J'ai vérifié les fichiers et les dossiers dans le docker et tout est là où il devrait être.

Je suppose que je manque quelque chose quelque part mais je ne trouve pas quoi, des suggestions sur la façon de le faire fonctionner?

Dockerfile

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'


2 commentaires

pourriez-vous partager comment avez-vous construit l'image du docker?


Message mis à jour avec les fichiers docker


3 Réponses :


1
votes

Nous avons trouvé une solution pour les fichiers CSS ici .

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


0 commentaires

0
votes

J'ai rencontré le même problème et la solution fournie ici est correcte mais vous devez également ajouter:

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

De plus, au lieu d'ajouter, vous pouvez ajouter la feuille de style par:

XXX


0 commentaires

0
votes

Ce n'est pas génial, mais si vous avez besoin de servir des choses autres que css, vous pouvez également utiliser les options des sources externes:

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

J'ai rencontré cela avec une image, et c'est la meilleure solution (actuelle = 30 janvier 2020) que je connaisse.


0 commentaires