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')