Radosław Wejda

Radosław Wejda Senior SAP BI
Specialist, Oerlikon

Temat: Problem ze static i media files w

Od niedawna zacząłem bawić się z Django. Wystartowałem z projektem testowym i utknąłem na irytującej rzeczy.
Wygląda na to, że aplikacja jest ślepa i nie widzi lub też nie chce widzieć moim plików statycznych.

http://127.0.0.1:8000/static/css/theme.css -> wyrzuca mi błąd 404.

W settings.py mam takie ustawienia:

STATIC_ROOT = 'C:/home/reisik/www/proj/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = ( "C:/home/reisik/www/proj/static/css/",)

W urls.py

from django.conf.urls import patterns, include, url
from django.conf.urls.defaults import *
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
(r'^home/', include('sketch.urls')),
)

urlpatterns += staticfiles_urlpatterns()

Odpaliłem python manage.py collectstatic i nic. Framework z uporem osła twierdzi, że plik nie istnieje. Przejrzałem podpowiedzi ze stackoverflow etc i wszystkie nie spełniają moich oczekiwań.

Co ciekawe style, obrazki i skrypty z panelu admin są widoczne z poziomu przeglądarki i ładują się bez problemu.

Macie jakieś pomysły? Wersja Django to 1.5.2.

konto usunięte

Temat: Problem ze static i media files w

Radosław W.:
Od niedawna zacząłem bawić się z Django. Wystartowałem z projektem testowym i utknąłem na irytującej rzeczy.
Wygląda na to, że aplikacja jest ślepa i nie widzi lub też nie chce widzieć moim plików statycznych.

Aplikacja nie jest ślepa, tylko Ty ją prowadzisz po "ciemku" :)
W settings.py mam takie ustawienia:

STATIC_ROOT = 'C:/home/reisik/www/proj/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = ( "C:/home/reisik/www/proj/static/css/",)

A dodałeś django.contrib.staticfiles do INSTALLED_APPS ?
STATICFILES_DIRS = ( "C:/home/reisik/www/proj/static/") - spróbuj tak, (bez : /css/)
Odpaliłem python manage.py collectstatic i nic. Framework z uporem osła twierdzi, że plik nie istnieje.

Skoro Django tak twierdzi to znaczy, że coś zrobiłeś źle :)
urls.py nie ma tutaj nic do rzeczy.

Proszę, przeczytaj jeszcze raz dokumentację, z pewnością coś ominąłeś : https://docs.djangoproject.com/en/1.5/howto/static-files/

PS.
Skoro w dokumentacji Django jest napisane, że coś działa, to działa :)Ten post został edytowany przez Autora dnia 25.08.13 o godzinie 23:25
Radosław Wejda

Radosław Wejda Senior SAP BI
Specialist, Oerlikon

Temat: Problem ze static i media files w

Dodałem do STATICFILESDIR również wpisy. Framwork nadal nie widział folderów statycznych.
Zrobiłem wszystko książkowo. Poszukałem pogrzebałem i się obudził. To jest chyba problem, że odpalm to na WIN.

Rozwiązanie problemu:

SETTINGS.PY

import os

STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join('static'),
)

Wszystkie inne metody zawiodły. Pod Linuxem działały podpowiedzi z typowych tutoriali.

Z MEDIA jest podobnie. Przy ksiąźkowej konfigruacji pod WIN nie ma problemu z ładowaniem plików z panelu admina. Natomiast odczyt już stwarza problemy. Rozwiązanie jest analogiczne do powyższego.

Czasem ślepe ufanie zapisom dokumentacji może być zgubne. Nie ma bezbłędnych środowisk :)
Marek H.

Marek H. Web developer

Temat: Problem ze static i media files w

Radosław W.:
Czasem ślepe ufanie zapisom dokumentacji może być zgubne. Nie ma bezbłędnych środowisk :)
Z całym szacunkiem, ale prawdopodobieństwo, że osoba początkująca, wykonująca książkowe przepisy wdepnie na nieodkrytego wcześniej buga jest delikatnie mówiąc niewielkie.
(...) To jest chyba problem, że odpalm to na WIN.
Ale tu się zgodzę - nie ma bezbłędnych środowisk, szczególnie z tymi trzema literami w nazwie ;-)
Radosław Wejda

Radosław Wejda Senior SAP BI
Specialist, Oerlikon

Temat: Problem ze static i media files w

Często jest tak, że "świeżaki" łatwiej wykrywają błędy bo wykonują nielogiczne ( z perspektywy osoby doświadczonej ) operacje odsłaniając luki, chociażby w obsłudze wyjątków :).

Najsłabszymi testerami aplikacji są zazwyczaj jej autorzy.

Widzę kolejnę czepianie się twórców z Redmond :). Każdy OS jest kulawy, kwestia trafienia w ułomność, a jego dobór kwestia potrzeb.

konto usunięte

Temat: Problem ze static i media files w

Super, to skoro jest błąd, możesz go zawsze zgłosić, poprawić i dopisać lepszą dokumentację dla kogoś, kto używa Windowsa. I świat będzie lepszy.

konto usunięte

Temat: Problem ze static i media files w

Radosław W.:
Często jest tak, że "świeżaki" łatwiej wykrywają błędy bo wykonują nielogiczne ( z perspektywy osoby doświadczonej ) operacje odsłaniając luki, chociażby w obsłudze wyjątków :).

W kierunku takiego myślenia, "świeżak" za każdym razem (może przesadzam) gdy zrobi coś źle będzie myślał, że trafił na lukę i będzie to zgłaszał. Warto zapoznać się dokładnie z wysypywanymi błędami, by wiedzieć, co i jak wolno i odwrotnie - czego nie wolno : by później tych "nielogicznych operacji" więcej nie popełniać, przecież wszystko tutaj opiera się na logice.
Dla takiego "świeżaka" błędy powinny się sypać jak z rękawa, by w końcu nauczył się poprawnie pisać :)
Najsłabszymi testerami aplikacji są zazwyczaj jej autorzy.

Zgadzam się, ale tylko w części, pisząc aplikację trzeba wziąć pod uwagę wszystkie możliwe operacje jakie może wykonać użytkownik i odpowiednio naszą appke zabezpieczyć, tworzenie aplikacji bez chwili zastanowienia się : "A jak zachowa się mój kod, gdy użytkownik zrobi tak..." jest syzyfową pracą, bo wciąż będziemy musieli cofać się do wcześniej napisanych modeli/views'ów itp, modyfikować kod i dopisywać nowe wyjątki : końca pracy nie widać.

Co do Django, to mam pełne zaufanie do jego twórców.
Wystarczy przeczytać dokumentację i użyć trochę wyobraźni by się przekonać, że Django jest kochane :)
Widzę kolejnę czepianie się twórców z Redmond :).

Nie łapie tego.
Każdy OS jest kulawy, kwestia trafienia w ułomność, a jego dobór
kwestia potrzeb.

Właśnie chodzi o to, by dobrze wybrać przed pracą, by później uniknąć walczenia z jego ułomnością.
To, że większość programistów pracuje na Linuxach nie jest przypadkowe :)Ten post został edytowany przez Autora dnia 27.08.13 o godzinie 23:04

Następna dyskusja:

Problem z podstawianiem dan...




Wyślij zaproszenie do