Django Academy · leksjon

collectstatic for produksjon

Samle statiske filer for utrulling

Leksjon 2 av 413 trinn

collectstatic for produksjon er en gratis leksjon i Django Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Django Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Django Academy inneholder totalt 4 leksjoner.

Utvikling kontra produksjon

I utviklingsmiljøet finner og leverer Django statiske filer for deg. I produksjon er denne automatiske leveringen deaktivert, så du må først samle ressursene på ett sted.

Møt collectstatic

collectstatic-kommandoen kopierer alle statiske filer fra alle apper til én utdatamappe, klar for rask levering fra en webserver.

python manage.py collectstatic

Målet STATIC_ROOT

collectstatic trenger et mål. Innstillingen STATIC_ROOT peker på den ene mappen der alle de innsamlede filene skal skrives.

STATIC_ROOT = BASE_DIR / 'staticfiles'

Hold rotmappene adskilt

Angi aldri STATIC_ROOT til en mappe du redigerer manuelt. Den er en generert output-mappe som bygges på nytt hver gang collectstatic kjøres.

Hva som samles inn

collectstatic henter fra static-mappen i hver app og fra STATICFILES_DIRS, og slår alt sammen i STATIC_ROOT i én operasjon.

Hopp over spørsmålet

Som standard spør kommandoen før filer overskrives. Legg til --noinput i et distribusjonsskript, slik at den kjører uten tilsyn og ikke venter på deg.

python manage.py collectstatic --noinput

Når den skal kjøres

Kjør collectstatic ved hver distribusjon, etter at du har hentet ny kode. Ny eller endret CSS og JavaScript blir først tilgjengelig for brukerne etter at den er samlet inn.

Cache-busting

Backend-løsningen ManifestStaticFilesStorage legger til en innholds-hash i hvert filnavn, slik at nettlesere alltid henter den nyeste versjonen etter en distribusjon.

STATICFILES_STORAGE = (
  'django.contrib.staticfiles.storage'
  '.ManifestStaticFilesStorage')

Hvem som leverer dem

Django leverer ikke selv STATIC_ROOT i produksjon. En webserver som Nginx eller et verktøy som WhiteNoise leverer filene i stedet.

Ignorer byggeavfall

Legg til --ignore-mønstre for å hoppe over filer du ikke vil kopiere, for eksempel source maps eller midlertidige filer som ligger igjen i en static-mappe.

python manage.py collectstatic --ignore=*.scss

Git og STATIC_ROOT

Siden STATIC_ROOT er generert, bør du legge den til i .gitignore. Du committer kilderessursene dine, ikke de innsamlede kopiene.

Hurtigsjekk

La oss bekrefte hvilken rolle collectstatic har.

Oppsummering

Du har sett at produksjon trenger collectstatic for å slå sammen ressurser i STATIC_ROOT, at du kjører den ved hver distribusjon, og at en webserver leverer resultatet. 🚀

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «collectstatic for produksjon» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Django Academy, inkludert «collectstatic for produksjon», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Django Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «collectstatic for produksjon»?

Samle statiske filer for utrulling Du øver på Django Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Django Academy?

Ingen tidligere erfaring er nødvendig. Django Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «collectstatic for produksjon»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Django Academy-leksjonen?

Ja. Alle Django Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. STATICFILES og static-taggen
  2. collectstatic for produksjon
  3. MEDIA_ROOT og filopplastinger
  4. ImageField og visning av opplastinger
← Tilbake til Django Academy