Domanda

Quando si distribuisce un'app Django utilizzando Dokku, sto ottenendo un errore seguente

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

Non ho trovato alcun modo per eseguire heroku run python ./manage.py collectstatic --noinput per un contenitore di Dokku, ma quando sto provando dokku run my app python ./manage.py collectstatic --noinput, i file statici vengono copiati correttamente nella cartella STATIC_ROOT e nessun messaggio di errore dato.

Potrei risolvere il problema posizionando il comando collectstatic in Procfile:

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

Eppure, mi piacerebbe sapere cosa stava causando il problema e come può essere debug.Qualche idea?

È stato utile?

Soluzione

Dovresti avere quattro impostazioni nel file Impostazioni.py denominato MEDIA_ROOT, MEDIA_URL, STATIC_ROOT e STATIC_URL.

Ho impostato il mio come:

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

All'interno del contenitore Docker che viene creato, troverai la tua applicazione sotto / app che rende il percorso multimediale / app / media / e il percorso statico / app / static /.etringhing / P>

Sfortunatamente se non si dispone di una cartella multimediale e statica commessa in Git, non verrà creata automaticamente sotto / app.

Dal momento che GIT non ti consente di commettere una cartella vuota (commette solo file), faccio quanto segue nei miei progetti:

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

Il comando 'Touch' crea un file vuoto, quindi è possibile aggiungere "i due file appena creati e controllali.

Ora quando premi, le directory saranno lì per contenere i file multimediali e i file statici. Tieni presente che ogni volta che hai "spinta", viene creato un nuovo contenitore e il vecchio è distrutto. Mentre questo non è un problema per i tuoi file statici, il tuo supporto sarà perso a meno che non lo conservi da qualche altra parte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top