2012-04-12 8 views
1

ich unter Einstellungen habe in meiner settings.py Datei:MEDIA_ROOT MEDIA_URL: Rendering statische Server-Seiten über Django

ROOT_PATH = os.path.dirname(os.path.realpath(__file__)) 
MEDIA_ROOT = os.path.join(ROOT_PATH,'site_media') 
MEDIA_URL = 'http://xx.xxx.xx.xx:yyyy/site_media/' 

And in urls.py 

urlpatterns += patterns('', 
     (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', 
     {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}), 

Und in meiner Web-Seite:

<img border="0" width="120" align="Left" src="/site_media/images/logo.gif"> 

kann ich die Datei in dem sehen Projektpfad:

Prj/site_media/images/logo.gif

Aber immer noch, wenn ich mein Projekt in der HTML-Seite starten Alter Ich bin nicht in der Lage, das Bild zu sehen:

Prj > python manage.py runserver xx.xxx.xx.xx:yyyy 
Validating models... 

0 errors found 
Django version 1.3.1, using settings 'Prj.settings' 
Development server is running at http://xx.xxx.xx.xx:yyyy/ 
Quit the server with CONTROL-C. 

Ich bin mir nicht sicher, was das Problem ist und wie kann ich es lösen?

ist unter dem Request/Response-Header, die ich in Firebug sehen:

GET http://xx.xxx.xx.xx:yyyy/site_media/images/logo.gif 


Response Headers 
Content-Type text/html; charset=utf-8 
Date Thu, 12 Apr 2012 17:00:01 GMT 
Server WSGIServer/0.1 Python/2.7.2 

Request Headersview source 
Accept image/png,image/*;q=0.8,*/*;q=0.5 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Accept-Encoding gzip, deflate 
Accept-Language en-us,en;q=0.5 
Connection keep-alive 
Host xx.xxx.xx.xx:yyyy 
Referer http://xx.xxx.xx.xx:yyyy/ 
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0 

Server-Protokolle:

[12/Apr/2012 09:35:11] "GET /site_media/images/logo.gif HTTP/1.1" 200 122202 

Hinweis auch die CSS/JS-Skripte werden auch nicht immer geladen:

GET jquery-1.4.2.js 

200 OK xx.xxx.xx.xx:yyyy 119.3 KB xx.xxx.xx.xx:yyyy 6.96s 

HeadersResponseCache 
Response Headersview source 
Content-Type text/html; charset=utf-8 
Date Thu, 12 Apr 2012 17:00:03 GMT 
Server WSGIServer/0.1 Python/2.7.2 


Request Headersview source 
Accept */* 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Accept-Encoding gzip, deflate 
Accept-Language en-us,en;q=0.5 
Connection keep-alive 
Host xx.xxx.xx.xx:yyyy 
Referer http://xx.xxx.xx.xx:yyyy/ 
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0 
+0

was sagt das Serverprotokoll, wenn Sie eine Anfrage an Ihre Website stellen? Was sagt Firebug, wenn Sie Ihre Webseite laden? – dm03514

+0

Ich habe den Inhalt hinzugefügt, wie über FireBug gesehen – Prakash

Antwort

0

Da Sie Django 1.3.1 anstelle von MEDIA_ROOT und MEDIA_URL verwenden, würde ich vorschlagen, django.c zu verwenden ontrib.staticfiles

sorgfältig lesen this page

in Ihrem Fall wäre dies wie etwas sein:


settings.py:

STATIC_ROOT = os.path.join(ROOT_PATH,'site_media') 
STATIC_URL = '/site_media/' 

INSTALLED_APPS = (
    # Your installed apps.... 
    # ... 
    'django.contrib.staticfiles', 
) 

# Not sure what exact context processors you need, but "static" will be one of them 
TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth", 
    "django.core.context_processors.debug", 
    "django.core.context_processors.i18n", 
    "django.core.context_processors.media", 
    "django.core.context_processors.static", 
    "django.core.context_processors.request", 
    "django.contrib.messages.context_processors.messages", 
) 

Um die Admin-Seite weiter arbeiten , in urls.py

# Admin 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    # Admin: 
    (r'^admin/', include(admin.site.urls)), 

    # Your other url code 
) 

Und dann auf Ihrer Webseite können Sie setzen:

<img border="0" width="120" align="Left" src="{{ STATIC_URL }}images/logo.gif">

Denken Sie daran, Sie werden Ihre Vorlagen mit den richtigen Kontext Prozessoren machen müssen:

return render_to_response('my_page.html', locals(), 
     context_instance=RequestContext(request)) 
Verwandte Themen