Os URLs são compostos de diretórios e nomes de arquivos. Qualquer coisa que precede um
/
é considerado um diretório. Qualquer coisa após o /
final é o nome do arquivo. Seu problema é que você está usando URLs relativos. Quando voce diz static/pics/gamma.png
seu navegador faz uma solicitação para esse arquivo em relação ao diretório da página atual. No caso de URLs como
/
e /shop
, o diretório é /
. O navegador solicitará /static/pics/gamma.png
. No caso de URLs como
/shop/item/1
, o diretório é /shop/item/
. Seu navegador solicitará /shop/item/static/pics/gamma.png
. Como seus URLs correspondem ao anterior, você deve armazená-los como URLs absolutos (com o
/
inicial ) para que o navegador faça a solicitação correta. Em uma nota semi-relacionada, você deve usar
url_for
quando possível. url_for('static', filename='css/home.css')