1
resposta

STATIC_ROOT, STATIC_URL, STATICFILES_DIRS

boa tarde, não consegui entender pela aula nem pela documentação, o que essas configurações fazem. Alguém podia me explicar detalhadamente o que cada uma das três faz?

1 resposta

Oiii Yago, como você está? Espero que esteja bem ^-^

Antes de partir para esses conceitos, vale mencionar sobre o que é um arquivo estático, que nada mais é do que arquivos que são enviados para o servidor do mesmo modo como estão na nossa máquina. Sendo assim, toda vez que carregamos o site, esses arquivos são apresentados da mesma forma. Arquivos de folha de estilo (CSS), Javascript e imagens são tratados como arquivos estáticos.

No Django, a nomenclatura para essa pasta segue um valor padrão: static. Porém, caso além da pasta static quisermos direcionar outra pasta para o django procurar por arquivos estáticos, podemos fazer isso através da configuração STATICFILES_DIR. Essa configuração serve para mostrarmos ao django caminhos adicionais para que ele procure arquivos estáticos.

Já a configuração STATIC_ROOT está relacionada a quando colocamos o nosso site no ar, ela deve armazenar o caminho onde ficará os arquivos estáticos após executarmos o comando python manage.py collectstatic, que irá gerar uma cópia de todos os nossos arquivos estáticos (incluindo os listados em STATICFILES_DIR) para que possamos colocá-los em um servidor. Então imagine que temos vários aplicativos no projeto e cada um tem sua pasta static, quando executarmos o collectstatic, ele juntará todos esses arquivos em uma mesma pasta no caminho que foi determinado em STATIC_ROOT, como mostro abaixo:

Funcionamento do STATIC_ROOT

Já a configuração STATIC_URL é a URL de acesso que o django irá usar para procurar os nossos arquivos estáticos. Ao fazermos: STATIC_URL = '/static/', estamos definindo que internamente o django faça algo como: http://localhost:8000/static/imagem.png para procurar algum recurso solicitado.

Espero ter ajudado! Qualquer dúvida estou a disposição.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software