Pergunta

Quando a implantação de um Django app usando dokku estou recebendo o seguinte erro

Collectstatic configuration error. To debug, run:
$ heroku run python ./manage.py collectstatic --noinput

Eu não encontrei nenhuma maneira de executar heroku run python ./manage.py collectstatic --noinput para um dokku recipiente, mas quando eu estou tentando dokku run my app python ./manage.py collectstatic --noinput, a estática arquivos são copiados com êxito para o STATIC_ROOT pasta e nenhuma mensagem de erro dado.

Eu poderia resolver o problema colocando collectstatic comando em Procfile:

web: python manage.py collectstatic --noinput ; gunicorn myapp.wsgi

Ainda assim, eu gostaria de saber o que estava a causar o problema e como ele pode ser depurado.Qualquer idéias?

Foi útil?

Solução

Você deve ter quatro configurações no seu settings.py arquivo chamado MEDIA_ROOT, MEDIA_URL, STATIC_ROOT e STATIC_URL.

Eu meu set assim:

MEDIA_ROOT = 'media' STATIC_ROOT = 'static' MEDIA_URL = '/media' STATIC_URL = '/static'

Dentro da janela de encaixe recipiente que é criado, você irá encontrar a sua aplicação em /app que faz o caminho de mídia /app/media/ e o caminho estático /app/static/.

Infelizmente, se você não tiver um media estático e pasta cometidos no git, ele não terá criado em /app automaticamente.

Desde o git não permitir que você para de cometer uma pasta vazia (só compromete-se arquivos), eu faço o seguinte em meus projetos:

mkdir media static touch media/.dir touch static/.dir git add media/.dir static/.dir git commit -m 'Make media and static directories'

O 'toque' comando cria um arquivo vazio, então você 'git add' os dois recém-criado arquivos e verificá-los.

Agora, quando você empurra, os diretórios vai estar lá para conter os meios e arquivos estáticos.Basta ter em mente que toda vez que você 'git push', um novo contêiner é criado, e o velho é destruído.Enquanto isso não é um problema para seus arquivos estáticos, seus meios de comunicação serão perdidas, a menos que você armazená-lo em outro lugar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top