Les URL sont composées de répertoires et de noms de fichiers. Tout ce qui précède un /
est considéré comme un répertoire. Tout ce qui suit le /
final est le nom du fichier. Votre problème est que vous utilisez des URL relatives. Quand tu dis
static/pics/gamma.png
votre navigateur fait une demande pour ce fichier par rapport au répertoire de la page en cours. Dans le cas d'URL comme /
et /shop
, le répertoire est /
. Le navigateur demandera /static/pics/gamma.png
.
Dans le cas d'URL comme /shop/item/1
, le répertoire est /shop/item/
. Votre navigateur demandera alors /shop/item/static/pics/gamma.png
.
Étant donné que vos URL correspondent aux premières, vous devez les stocker en tant qu'URL absolues (avec le premier /
) afin que le navigateur fasse la bonne requête.
Sur une note semi-liée, vous devriez utiliser url_for
dès que possible.
url_for('static', filename='css/home.css')