Por que Django gerar erros HTTP 500 para mídia estática quando Debug está definida para Falso?

votos
5

Estou me preparando para implantar meu aplicativo Django e eu observei que quando eu mudar o debug configuração para false, todas as referências a arquivos estáticos (ou seja, JavaScript, CSS, etc ..) resultar em HTTP 500erros.

Alguma idéia do que está causando essa questão (e como corrigi-lo)?

Publicado 23/09/2008 em 16:46
fonte usuário
Em outras línguas...                            


4 respostas

votos
12

Eu recomendo deixar o seu servidor web lidar com as solicitações estáticas, sem chegar a Django. Na minha urls.py, eu só adicionar o manipulador de solicitação estática quando depuração é definida como True.

Tecnicamente, Django servindo os trabalhos estáticos bem embora. Definitivamente ler a página docs suma, http://docs.djangoproject.com/en/dev/howto/static-files/ . Você vai querer usar uma entrada como esta nourls.py

(r'^static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/path/to/media'})
Respondeu 23/09/2008 em 17:16
fonte usuário

votos
6

Parece que você pode estar tentando servir os seus meios estáticos usando o servidor de desenvolvimento Django. Dê uma olhada em http://docs.djangoproject.com/en/dev/howto/deployment/ para alguns cenários de implantação / howtos e http://docs.djangoproject.com/en/dev/howto/static-files/ para como servir arquivos estáticos (mas note o aviso legal sobre não usar esses métodos na produção).

Em geral, eu olhar para seus registros do servidor e ver onde ele está tentando buscar os arquivos. Eu suspeito que os erros 500 são realmente erros 404, mas tornam-se 500 erros porque Django não consegue encontrar ou tornar o modelo 404.html. Se isso não for o caso, seria útil se você pudesse postar o erro específico 500 você está recebendo.

Respondeu 23/09/2008 em 17:19
fonte usuário

votos
0

Acontece que eu tinha comentado a SECRET_KEYvariável. Não havia nenhuma maneira para mim saber embora. Só tinha de experimentar as coisas.

Respondeu 30/07/2016 em 14:41
fonte usuário

votos
0

Você também deve verificar os seus URLs em todo o lugar. Quando a depuração é definido como false, todas as URLs sem arrastando "/" são tratados como um erro, ao contrário de quando você tem DEBUG = True, caso em que o Django irá acrescentar "/" em todos os lugares que está faltando. Então, em suma, certifique-se todos os links terminar com uma barra EM TODA PARTE.

Respondeu 18/06/2013 em 09:26
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more