Ve výchozím nastavení djanga jsou statické soubory projektu v relatvní 
složce static

settings.py:
STATIC_URL = '/static/'

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:
STATIC_URL = 'http://static.localhost:8000/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")

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:
STATIC_URL = 'http://static.localhost:8000/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

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.

-- 
-- 
E-mailová skupina django-cs@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
--- 
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs 
ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete 
e-mail na adresu django-cs+unsubscr...@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte 
https://groups.google.com/d/msgid/django-cs/c490316b-4b62-4e04-8bb6-2a14a59777f6%40googlegroups.com.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

Reply via email to