Ve výchozím nastavení djanga jsou statické soubory projektu v relatvní složce static
settings.py:
na vývojovém stroji jsou pak statické soubory přístupné na url:
http://localhost:8000/static/file.jpg
Rád bych ale statické soubory zpřístupnil na doméně 3. řádu, tedy na url:
http://static.localhost:8000/file.jpg
Důvodem je třeba rychlejší přístup k souborům (neposílá se cookie) atd.
Nastavím tedy v settings.py:
poté zkontroluji dostupnost statického souboru
> manage.py findstatic --verbosity 2 file.jpg
No matching file found for 'file.jpg'.
Looking in the following locations:
C:\Program Files\Python36\lib\site-packages\django\contrib\admin\static
Soubor tedy vůbec nebyl nalezen. Předpokládám, že STATIC_ROOT se používá jen pro získávání statických souborů aplikací a proto nebyl soubor nalezen. Nebo je to jinak?
Nastavím tedy settings.py jinak:
poté zkontroluji dostupnost statického souboru
> manage.py findstatic --verbosity 2 file.jpg
Found 'file.jpg' here:
D:\Document\Development\Python\Testproject\static\file.jpg
Looking in the following locations:
D:\Document\Development\Python\Testproject\static
C:\Program Files\Python36\lib\site-packages\django\contrib\admin\static
Soubor je nalezen :)
Nyní se pokusím k souboru přistoupit v prohlížeči přes url:
http://static.localhost:8000/file.jpg
ale obdržím 404, v konzoli je:
Not Found: /file.jpg
[25/Feb/2018 17:37:30] "GET /file.jpg HTTP/1.1" 404 1975
Otázka 1:
Proč je po nastavení STATIC_URL a STATIC_ROOT z url nedostupný obsah složky STATIC_ROOT ?
Otázka 2:
Je správnější nastavit STATIC_ROOT nebo STATICFILES_DIRS? Oboje nastavit shodně nelze.
Otázka 3:
Co musím udělat, abych se přes URL domény 3. řádu dostal ke statickému souboru? Co dělám špatně?
Díky moc za reakce.