Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

App usando static de outra app

Eu percebi na atividade que, ao criar a base_usuario no app usuarios, utilizamos o bootstrap que está na static do app perfil. Acredito que isso não seja uma boa prática, pois pensando na manutenção do projeto, ao analisar o código não dá pra saber onde está o arquivo estático sendo referenciado. Nesse caso, como só tem 2 apps dá pra procurar no outro e achar, mas como proceder em projetos com mais apps? Em .net eu criaria uma pasta na raiz e referenciaria os arquivos de lá, mas como fazer isso em django?

3 respostas

Não sei como fazer isso em Django. Há convenções difíceis de burlar no framework. Vou deixar sua dúvida aberta para ver se tem alguém que conseguiu algo semelhante.

solução!

Pelo que entendi o padrão do app staticfiles do Django é buscar em cada uma das pastas "static" dentro dos seus aplicativos pelos arquivos estáticos que estão sendo requisitados. Mas ele prevê os casos em que os mesmos arquivos serão utilizados por diferentes apps.

Da documentação do Django:

"Seu projeto provavelmente também vai ter arquivos státicos que não estão diretamente ligados a um app em particular. Além de utilizar o arquivo static/ dentro dos seus apps, você pode definir uma lista de diretórios (STATICFILES_DIRS) no seu arquivo settings.py, onde o Django também vai procurar por arquivos estáticos. Por exemplo:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    '/var/www/static/',
]

eu traduzi esse trecho direto da documentação do django, acho que atende bem a sua necessidade, mas caso eu não tenha sido claro você pode ver o texto na íntegra no link abaixo:

https://docs.djangoproject.com/en/1.10/howto/static-files/

Encontrei essa solução depois de não obter resposta aqui, mas de qualquer forma, te agradeço!