collectstatic för produktion
Samla statiska filer för driftsättning
collectstatic för produktion är en gratis lektion i Django Academy på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Django Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Django Academy innehåller totalt 4 lektioner.
Utveckling kontra produktion
I utvecklingsmiljö hittar och levererar Django statiska filer åt dig. I produktion är denna automatiska leverans avstängd, så du måste först samla resurserna på en plats.
Möt collectstatic
Kommandot collectstatic kopierar alla statiska filer från alla appar till en enda utdatamapp, redo att levereras snabbt av en webbserver.
python manage.py collectstaticMålet STATIC_ROOT
collectstatic behöver en destination. Inställningen STATIC_ROOT pekar på den enda mapp där alla insamlade filer skrivs.
STATIC_ROOT = BASE_DIR / 'staticfiles'Håll rötterna åtskilda
Ange aldrig STATIC_ROOT till en mapp som du redigerar för hand. Det är en genererad utdata-mapp som byggs om vid varje körning av collectstatic.
Det som samlas in
collectstatic hämtar filer från varje apps static-mapp och från STATICFILES_DIRS och slår ihop allt i STATIC_ROOT i ett enda steg.
Hoppa över frågan
Som standard frågar kommandot innan filer skrivs över. Lägg till --noinput i ett distributionsskript så körs det obevakat utan att vänta på dig.
python manage.py collectstatic --noinputNär det ska köras
Kör collectstatic vid varje distribution, efter att du har hämtat ny kod. Ny eller ändrad CSS och JS når användarna först när den har samlats in.
Cachebrytning
Backend-komponenten ManifestStaticFilesStorage lägger till en innehållshash i varje filnamn, så att webbläsare alltid hämtar den senaste versionen efter en distribution.
STATICFILES_STORAGE = (
'django.contrib.staticfiles.storage'
'.ManifestStaticFilesStorage')Vem som levererar dem
Django levererar inte själv STATIC_ROOT i produktion. I stället levererar en webbserver som Nginx eller ett verktyg som WhiteNoise dessa filer.
Ignorera byggskräp
Lägg till mönster med --ignore för att hoppa över filer som du inte vill kopiera, till exempel källkartor eller tillfälliga filer i en static-mapp.
python manage.py collectstatic --ignore=*.scssGit och STATIC_ROOT
Eftersom STATIC_ROOT genereras ska du lägga till den i .gitignore. Du versionshanterar dina källresurser, inte de insamlade kopiorna.
Snabbkontroll
Nu bekräftar vi vilken roll collectstatic har.
Sammanfattning
Du har sett att produktion behöver collectstatic för att slå ihop resurser i STATIC_ROOT, att du kör det vid varje distribution och att en webbserver levererar resultatet. 🚀
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”collectstatic för produktion” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Django Academy, inklusive ”collectstatic för produktion”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Django Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”collectstatic för produktion”?
Samla statiska filer för driftsättning Ni övar på Django Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Django Academy?
Du behöver inga förkunskaper. Utbildningen i Django Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”collectstatic för produktion”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Django Academy-lektionen?
Ja. Varje Django Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- STATICFILES och static-taggen
- collectstatic för produktion
- MEDIA_ROOT och filuppladdningar
- ImageField och visning av uppladdningar