Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Deploy de aplicação Django no Heroku

Olá pessoal! Estou com uma dúvida para fazer deploy de uma aplicação django no Heroku. O problema é que o heroku não carrega meus arquivos estáticos. Alguém teria como me ajudar ou saberia me recomendar um outro local gratuito onde eu possa fazer deploy da aplicação?

Primeiramente seque a configuração para carregar os arquivos estáticos que fiz no settings.py:

PROJECT_ROOT = os.path.abspath(os.path.join(__file__, os.pardir))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'core/static/')
STATIC_URL = '/static/'

Aqui está a estrutura do meu projeto:

myapp
|--- core
      |--- static
|--- client
|--- product
|--- myapp
       |--- settings.py
       |--- urls.py

Antes, rodei os seguintes comandos localmente:

$ python manage.py makemigrations
$ python manage.py migrate

E depois, no heroku:

$ heroku run python manage.py makemigrations
$ heroku run python manage.py migrate

E depois:

$ git add .
$ git commit -m "I do some commit here."
$ git push heroku master

Daí, confiante de que ia funcionar, fui no browser e coloquei o link do site. Mas não apareceu meu template. Ficou aquele lindo site sem CSS!!! Então chorei! Brincadeira! Busquei outra solução e me veio em mente executar o comando fora do script.

python manage.py collectstatic --noinput

Mas também não funcionou.

Penso que talvez o problema esteja em como carrego no meu template (base.html), por isso coloco aqui.

{% load static%}

Coloquei isso na primeira linha do template. Detalhe: rodando python manage.py runserver localmente, o site sobe bonitinho.

Alguém poderia me ajudar???

Abraço.

2 respostas

Olá Douglas, o Heroku tem um dev center que possui algumas ressalvas sobre os arquivos estáticos. De uma olhada em static asserting and file serving.

https://devcenter.heroku.com/articles/django-app-configuration

Tem uma configuração importante lá a se fazer. Aliás, você chegou a ler esse tutorial passo a passo do heroku para realizar o deploy em uma aplicação Django?

solução!

Sim. Até acabei conseguindo realizar alguns dias depois de ter postado. Obrigado pela resposta!