Django Academy · Lektion

collectstatic för produktion

Samla statiska filer för driftsättning

Lektion 2 av 413 steg

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 collectstatic

Må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 --noinput

Nä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=*.scss

Git 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. 🚀

Gratis att börja

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

  1. STATICFILES och static-taggen
  2. collectstatic för produktion
  3. MEDIA_ROOT och filuppladdningar
  4. ImageField och visning av uppladdningar
← Tillbaka till Django Academy