collectstatic per la produzione
Raccogliere i file statici per il deployment
collectstatic per la produzione è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Sviluppo e produzione
In sviluppo Django individua e serve i file statici per voi. In production questo servizio automatico è disattivato, quindi dovete prima raccogliere gli asset in un unico posto.
Conoscere collectstatic
Il comando collectstatic copia tutti i file statici di ogni app in un'unica cartella di output, pronta per essere servita rapidamente da un web server.
python manage.py collectstaticLa destinazione STATIC_ROOT
collectstatic ha bisogno di una destinazione. L'impostazione STATIC_ROOT indica la singola cartella in cui verranno scritti tutti i file raccolti.
STATIC_ROOT = BASE_DIR / 'staticfiles'Tenere separate le root
Non impostate mai STATIC_ROOT su una cartella che modificate manualmente. È una directory di output generata e ricostruita a ogni esecuzione di collectstatic.
Cosa raccoglie
collectstatic raccoglie i file dalla cartella static di ogni app e da STATICFILES_DIRS, unendoli tutti in STATIC_ROOT in un solo passaggio.
Saltare la richiesta di conferma
Per impostazione predefinita chiede conferma prima di sovrascrivere i file. In uno script di deploy aggiungete --noinput per eseguirlo senza intervento e senza attendere la vostra risposta.
python manage.py collectstatic --noinputQuando eseguirlo
Eseguite collectstatic a every deploy, dopo aver scaricato il nuovo codice. Il nuovo CSS e il nuovo JS raggiungono gli utenti solo dopo essere stati raccolti.
Cache busting
Il backend ManifestStaticFilesStorage aggiunge un hash del contenuto a ogni nome di file, così dopo un deploy i browser recuperano sempre la versione più recente.
STATICFILES_STORAGE = (
'django.contrib.staticfiles.storage'
'.ManifestStaticFilesStorage')Chi li serve
In produzione Django non serve direttamente STATIC_ROOT. Al suo posto, un web server come Nginx o uno strumento come WhiteNoise distribuisce questi file.
Ignorare i file di build
Aggiungete pattern --ignore per escludere i file che non volete copiare, come le source map o i file temporanei lasciati in una cartella static.
python manage.py collectstatic --ignore=*.scssGit e STATIC_ROOT
Poiché STATIC_ROOT è generata, aggiungetela a .gitignore. Eseguite il commit degli asset sorgente, non delle copie raccolte.
Verifica rapida
Verifichiamo il ruolo di collectstatic.
Riepilogo
Ha visto che in produzione serve collectstatic per unire gli asset in STATIC_ROOT, che va eseguito a ogni deploy e che il risultato viene servito da un web server. 🚀
Domande Frequenti
La lezione «collectstatic per la produzione» è gratuita?
Sì — il testo completo di «collectstatic per la produzione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «collectstatic per la produzione»?
Raccogliere i file statici per il deployment Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «collectstatic per la produzione»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- STATICFILES e il tag static
- collectstatic per la produzione
- MEDIA_ROOT e caricamento di file
- ImageField e pubblicazione dei file caricati