Gli URL sono costituiti da directory e nomi di file. Tutto ciò che precede un /
è considerata una directory. Qualsiasi cosa dopo il /
finale è il nome del file. Il tuo problema è che stai usando URL relativi. Quando dici
static/pics/gamma.png
il tuo browser fa una richiesta per quel file relativo alla directory della pagina corrente. Nel caso di URL come /
e /shop
, la directory è /
. Il browser richiederà /static/pics/gamma.png
.
Nel caso di URL come /shop/item/1
, la directory è /shop/item/
. Il tuo browser richiederà quindi /shop/item/static/pics/gamma.png
.
Poiché i tuoi URL corrispondono ai primi, dovresti salvarli come URL assoluti (con il /
iniziale ) in modo che il browser effettui la richiesta corretta.
In una nota semi-correlata, dovresti usare url_for
quando possibile.
url_for('static', filename='css/home.css')