Article image
Ronaldo Schmidt
Ronaldo Schmidt28/01/2024 12:32
Compartilhe

Problemas com serviços estáticos no django!

  • #Django
  • #Python

Servir os arquivos estáticos no Django as vezes não parece um trabalho fácil.

Pois o framework não se dá o trabalho de fornecer essa funcionalidade para a gente. Algumas opções que temos para resolver esse problema, seguindo a documentação oficial do Django, são basicamente:

  • Configurar o nosso servidor web (Apache ou Nginx) para servir esses arquivos;
  • Utilizar serviços de terceiros, como a Amazon S3.

Porém, estou aqui para indicar outro serviço, muito bom por sinal o WhiteNoise.

O que é WhiteNoise ?

O WhiteNoise serve os arquivos estáticos de forma campactadas com gzip e cuida de adicionar ao cabeçalho da requisição caches desses arquivos, para que sua aplicação não abra mão da performance por estar servindo os arquivos estáticos por ela mesma.

Como utilizar:

  • Instalamos através terminal.
  • Lembre-se de estar com a 'venv' ativada.
pip install whitenoise

Adicionamos a seguinte linha no arquivo de settings.py:

MIDDLEWARE = [
 'django.middleware.security.SecurityMiddleware',
 'whitenoise.middleware.WhiteNoiseMiddleware',
]

Certifique-se que o WhiteNoise seja adicionado acima de todos os middlewares do Django, exceto o de security. 

Por fim,adicionamos a seguinte linha abaixo de STATIC_URL e STATIC_ROOT :

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

Pronto! Agora é só dar um collectstatic e seja feliz sem complicações e estresse para configurar.

Compartilhe
Comentários (0)