Para uma introdução ao uso de django.contrib.staticfiles, veja Gerenciamento de arquivos estáticos (ex.: imagens, JavaScript, CSS).
Servindo arquivos estáticos em produção¶
O esboço básico para colocar arquivos estáticos em produção é simples: execute o comando collectstatic quando houver mudanças nos arquivos estáticos, então faça os arranjos para que o diretório de arquivos estáticos (STATIC_ROOT) seja movido para o servidor de arquivos estátios e o sirva. Dependendo do STATICFILES_STORAGE, os arquivos talvez precisem ser movidos manualmente para um novo local ou o método post_process da classe Storage talvez o faça.
Claro, como todas as tarefas de implantação, os problemas estão nos detalhes. Cada configuração de produção será um pouco diferente, então você irá precisar adaptar o esquema básico para atender suas necessidades. Abaixo estão alguns padrões que podem ajudar.
Servindo o site e os arquivos estáticos de um mesmo servidor.¶
Se você quer servir arquivos estáticos do mesmo servidor que já está servindo seu site , o processo talvez se pareça com algo como:
Envie seu código para o servidor de deploy.
No servidor, execute: collectstatic para copiar todos os arquivos estáticos para dentro de STATIC_ROOT.
Configure seu servidor Web para servir seus arquivos em STATIC_ROOT sob a URL STATIC_URL. Por exemplo, aqui como fazer isso com Apache e mod_wsgi.
Você irá provavelmente querer automatizar o processo, especialmente se você possuir múltiplos servidores web.
Servindo arquivos estáticos atráves de um servidor dedicado¶
A maioria dos grandes sites Django usa um servidor Web separado – isto é, um que não está servindo também o Django – para servir arquivos estáticos. Este servidor roda um tipo diferente de servidor web – mais rápido mas sem tantas funcionalidades. Algums opções são:
Nginx
Uma versão mais enxuta do Apache
A configuração destes servidores estão fora do escopo deste documento; verifique a respectiva documentação de cada um para instruções.
Já que seu servidor de arquivos estáticos não irão rodar um Django, você irá precisar modificar a estratégia para algo como:
Quando seus arquivos estáticos mudarem, execute collectstatic localmente.
Coloque seu STATIC_ROOT local no servidor de arquivo estático dentro do diretório que esta sendo servido. O rsync é uma opção comum para este passo já que ele precisa transferir somente as partes dos arquivos estáticos quesofreram mudanças.
Servindo arquivos estáticos de um serviço em nuvem ou CDN¶
Uma outra tática comum é servir arquivos estáticos de provedores de armazenamento em nuvem como o S3 da Amazom e/ou um CDN (Rede de distribuição de conteúdo). Isso deixa você ignorar os problemas de servir arquivos estáticos e pode muitas vezes fazer páginas web serem carregadas mais rapidamente (especialmente quando em uma CDN).
Quando usar estes serviços, o processo básico será parecido como o acima, exceto que no lugar de usar o rsync para transferir seus arquivos estáticos para o servidor, você irá precisa transferir os arquivos estáticos para fornecedor do armazenamento ou CDN.
Existem inúmeras maneiras para fazer isso, mas se o provedor tem uma API um um backend personalizado para armazenamento de arquivo fará o processo incrivelmente simples. Se você escreveu ou está usando um “backend” de armazenamento personalizado de terceiros, você pode avisar o collectstatic para usá-lo definido STATICFILES_STORAGE para o mecanismo de armazenamento.
Por exemplo, se você escreveu um backend de armazenamento para o S3 em myproject.storage.S3Storage você poderia ele com:
STATICFILES_STORAGE = 'myproject.storage.S3Storage'
Uma vez isso feito, tudo que tem a fazer é executar collectstatic e seus arquivos estáticos devem ser então colocados através do seu pacote de armazenamento no S3. Se você mais tarde precisar trocar para um provedor de armazenamento diferente, isso deveria ser tão fácil quando alterar suas configurações no STATICFILES_STORAGE.
Para detalhes sobre como escrever um destes backends, veja Escrevendo um sistema de armazenamento personalizado. Existem aplicações de terceiros disponíveis que fornecem backends de armazenamento para muitas APIs comuns de armazenamento comuns. Um bom começo é uma olhada geral no djangopackages.com.
Aprenda mais¶
Para detalhes completos sobre todas as configurações, comandos, tags de templates, e outras partes incluidas em django.contrib.staticfiles, veja a referencia de arquivos estáticos.
Autenticação do banco de dados de usuário do Django vindo do Apache.
Relatório de erro
Back to Top
Informações Adicionais
Support Django!
Jean-Christophe GILLOT donated to the Django Software Foundation to support Django development. Donate today!
Conteúdos
Deploy de arquivos estáticos
Servindo arquivos estáticos em produção
Servindo o site e os arquivos estáticos de um mesmo servidor.
Servindo arquivos estáticos atráves de um servidor dedicado
Servindo arquivos estáticos de um serviço em nuvem ou CDN
Aprenda mais
Navegar
Próx: Autenticação do banco de dados de usuário do Django vindo do Apache.
Ant: Relatório de erro
Tabela de conteúdos
Índice Geral
Índice de Módulos Python
Você está aqui:
Documentação do Django 2.2
Guias de “como fazer”
Fazendo deploy do Django
Deploy de arquivos estáticos
Conseguindo ajuda
FAQ
Tente o FAQ — lá tem a resposta para várias perguntas comuns.
Íindice, Índice do módulo, or Tabela de conteúdos
Útil ao procurar por uma informação especifica.
django-users mailing list
Procure por informação nos arquivos da lista de emails django-users, ou poste uma pergunta.
#django IRC channel
Faça uma pergunta no canal IRC #django, ou procure pelos logs IRC para ver se a pergunta ja foi feita.
Django Discord Server
Join the Django Discord Community.
Official Django Forum
Join the community on the Django Forum.
Ticket tracker
Reporte bugs no Django ou na Documentação do Django em nosso ticket tracker.
Download:
Offline (Django 2.2): HTML | PDF | ePub
Oferecido por Leia o Doc.
Django Links
Learn More
About Django
Getting Started with Django
Team Organization
Django Software Foundation
Code of Conduct
Diversity Statement
Get Involved
Join a Group
Contribute to Django
Submit a Bug
Report a Security Issue
Get Help
Getting Help FAQ
#django IRC channel
Django Discord
Official Django Forum
Follow Us
GitHub
Twitter
News RSS
Django Users Mailing List
Support Us
Sponsor Django
Official merchandise store
Amazon Smile
Benevity Workplace Giving Program
Django
Hosting by In-kind donors
Design by Threespot & andrevv
© 2005-2022 Django Software Foundation and individual contributors. Django is a registered trademark of the Django Software Foundation.
Esse documento é para uma versão insegura do Django que nao é mais suportada. Por favor atualize para uma versão mais recente!