Addon Flask avec Ingress

Bonjour,

Je test un premier addon en Python Flask avec Ingress

Pour l’instant, cet addon ne fait rien de particulier, j’ai juste 2 routes, une ‹ / › et ‹ log › appelé de la première.


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/log/<service>')
def log(service):
    log = [
        "2024-06-10 13:41:07,099 INFO Publish MQTT topic home/flowmeter/elechpjr/month/flow = 0.0",
        "2024-06-10 13:41:07,099 INFO Recu MQTT message: home/teleinfo/linky/tempo/elechall (0) = b'21604912'",
        "2024-06-10 13:41:07,099 DEBUG Sensor: 'linky elechall' = 21604912",
        "2024-06-10 13:41:07,099 DEBUG Compteur elechall courant: 21604912 et précédent: 21604878",
        "2024-06-10 13:41:07,099 DEBUG Send elechall MQTT message",
        "2024-06-10 13:41:07,099 INFO Publish MQTT topic home/flowmeter/elechall/current/flow = 0.0340",
    ]
    return render_template('log.html', titre="vesta flowmeter2mqtt log", loglist=log)

J’utilise bootstrap et j’ai dans le répertoire static un js et un css

$ find root/static
root/static
root/static/css
root/static/css/bootstrap.min.css
root/static/js
root/static/js/bootstrap.bundle.min.js

Les 2 pages html font appel au 2 js/css: de cette façon:

<link href="static/css/bootstrap.min.css" rel="stylesheet">
<script src="static/js/bootstrap.bundle.min.js"></script>

Si la page principale s’affiche bien en prenant en compte les js/css bootstrap, la page log appelée de la page principale n’arrive pas à accéder à ces 2 fichiers.

L’ingress les recherche dans le lien /log/static/js/bootstrap.bundle.min.js et non /static/js/bootstrap.bundle.min.js

Log add-on:

2025-12-27 13:51:01 local-serviceslog werkzeug[100] INFO 172.30.32.2 - - [27/Dec/2025 13:51:01] "GET / HTTP/1.1" 200 -
2025-12-27 13:51:01 local-serviceslog werkzeug[100] INFO 172.30.32.2 - - [27/Dec/2025 13:51:01] "GET /static/css/bootstrap.min.css HTTP/1.1" 304 -
2025-12-27 13:51:01 local-serviceslog werkzeug[100] INFO 172.30.32.2 - - [27/Dec/2025 13:51:01] "GET /static/js/bootstrap.bundle.min.js HTTP/1.1" 304 -
2025-12-27 13:51:05 local-serviceslog werkzeug[100] INFO 172.30.32.2 - - [27/Dec/2025 13:51:05] "GET /log/flowmeter2mqtt HTTP/1.1" 200 -
2025-12-27 13:51:05 local-serviceslog werkzeug[100] INFO 172.30.32.2 - - [27/Dec/2025 13:51:05] "GET /log/static/css/bootstrap.min.css HTTP/1.1" 404 -
2025-12-27 13:51:05 local-serviceslog werkzeug[100] INFO 172.30.32.2 - - [27/Dec/2025 13:51:05] "GET /log/static/js/bootstrap.bundle.min.js HTTP/1.1" 404 -

Log dev Firefox:

J’ai tenté plusieurs solutions comme utliser “url_for” pour charger les js/css comme ceci

<script src="{{url_for('static', filename='bootstrap.bundle.min.js')}}"></script>

ou modifié le répertoire des fichiers statiques dans le code comme ceci:
app = Flask(__name__, static_url_path="/", static_folder='./')

Mais j’ai toujours le problème

Pour info, le code et le rendu fonctionne bien en dehors de HA en accédant directement à l’URL+port du programme

Auriez vous des idées ?