Django statiški failai

E
  • 21 Lie '11

Žinau, kad django statiškus failus reikia laikyti atskiram serveryje nuo paties django. O ką daryt, kuomet statiškų failų serveris yra tame pačiame vidiniame tinkle?
Kitas klausimas: jei darau puslapį, kuriame useris į savo postus ar savo kuriamą turinį gali terpt paveiksliukus, reikia prie kiekvieno jų adreso pradžios priklijuoti {{ MEDIA_URL }}, taip?

C
  • 24 Lie '11

Sveikas,
kaip aptarnauti statiskus failus: https://docs.djangoproject.com/en/1.3/h ... tic-files/
Tegu mane pataiso Django guru, taciau as manau, kad statiskus failus rekomenduojame ne skirtingame serveryje laikyti, o aptarnauti skirtingu servisu nei pacia aplikacija. Tai butu django aplikacija aptarnaujama apache, o statiniai failai per nginx, lighttpd ... Zinoma cia yra gera praktika,i kuria reiketu kreipti demesi jei pas tave yra didelis loadas ir daug statiniu failu (dazniausiai paveiksliuku).
MEDIA_URL - bent pas mane, url konstanta nurodo kaip pasiekti media failus. Ja uzsideklaruoju dinamiskai settings.py . Tai reiskia, kad tau nereikes hardcodinti urlo ir veiks tvarkingai tiek lokaliai, tiek dev serveryje tiek produktione.
pvz:
if PRODUCTION:
MEDIA_URL = 'http://www.site.com/static/media/'
else:
MEDIA_URL = 'http://127.0.0.1:8000/static/media/'

Tikiuos padejau

E
  • 24 Lie '11

Mano atveju reikalingas būtent hostinimas skirtinguose serveriuose, kurie yra tame pačiame vidiniame tinkle, tiek kiek papasakojai, tai ir pats supratau.

Nors dar būtų galimas variantas ir vienam serveryje, o yra kokių variantų apsieit be apache? Puslapis būtų tikrai menkai apkrautas.

S
  • 9 Rugp '11

Tikrai neprivaloma ir nerekomenduojama statinio turinio laikyti kitame serveryje, tai yra visiškai laisvas pasirinkimas. Dažniausiai statinis turinys iškeliamas į kitą serverį esant dideliems svetainės apkrovimams.

Yra dviejų rūšių turinys, kelias iki jo nurodomas per šiuos kintamuosius: STATIC_URL ir MEDIA_URL.

STATIC_URL skirtas statiniam turiniui, o MEDIA_URL skirtas dinaminiam turinius, pavyzdžiui naudotojo įkeltiems paveiksliukams ir pan. MEDIA_URL dažniausiai rodo į tą patį serverį kur ir aplikacija, nes dažnai tuos paveiksliukus reikia ne tik parodyti, bet ir apdoroti, todėl patogiau ir greičiau, kai tie failai yra viename serveryje.

Jei kalbi apie tai, kad tavo statinio turinio serveris yra atskiras ir prieinamas tik iš vietinio tinklo, tuomet yra įvairių priemonių, kaip pateikti statinį turinį iš vieno serverio, per kitą. Elementariausias pavyzdys būtų Reverse proxy.

Statinio turinio servinimui tikrai nėra būtinas Apache, galima naudoti bet kurį web serverį. Daugelis naudoja Apache arba Nginx.