Django:无法解析剩余部分(媒体即图像)

问题描述:

我正在开发一个使用Django.I的WebApp新手,我有这个包含图像的html文件,我确实通过了这个"link",但现在我得到一个错误如解析Media Url一样。任何人都可以让我知道什么是错的?我已经检查过权限,即使它们是正确的。 !Django:无法解析剩余部分(媒体即图像)

这是图像对此我包括 -

<img border="2" src="{{ MEDIA_URL }}samplelogo.jpg" alt="logo here"/> 

这是urls.py -

from django.conf.urls.defaults import patterns, include, url 
import settings 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^gharnivas/$', 'gharnivas.views.index'), 
    url(r'^media/(?P<path>.*)$','django.views.static.serve',{'document_root': settings.MEDIA_ROOT}), 
) 

这是媒体的URL和根的settings.py:

MEDIA_ROOT = '/home/nagaraj/ghar/templates/media' 
MEDIA_URL = 'http://localhost:8000/media/' 

ghar是django项目,gharnivas是应用程序

更新

现在我已经通过更换媒体链接直接删除TemplateSyntaxError的错误“/媒体/”由@Torsten以下建议。但仍得到的形象!

另一个查询,我正在使用MEDIA_ROOT和MEDIA_URL是否正确?因为有些地方我甚至看到他们有STATIC_URL和STATIC_ROOT!

+0

我不知道你是否错过了一些东西,但是我们确实是这样,因为你还没有发布你引用这个模板的地方。 – 2011-04-27 09:16:56

{{ MEDIA_URL }}输出空字符串?确保

1)。 'django.core.context_processors.media'TEMPLATE_CONTEXT_PROCESSORS

2)。您在模板中传递RequestContext(通过context_instance=RequestContext(request)render_to_response中或通过使用direct_to_template代替)。

+0

@DTTyrsa:我对你的解释感到困惑。由于我是Django的新手,我的第一个观点是我可以在哪里添加它?即使我的views.py我有render_to_response('gharnivas/ghar.html')加载第一个文件,但没有图像。 – 2011-04-27 12:07:54

+0

'TEMPLATE_CONTEXT_PROCESSORS'在项目的settigs.py中。 ''django.core.context_processors.media''应该在默认情况下。该处理器将MEDIA_URL变量添加到您的模板。但是你应该使用'RequestContext'。 [Here](http://*.com/questions/3756841/django-media-url-blank)是相关的问题。 – DrTyrsa 2011-04-27 12:12:17

+0

@DTTyrsa:我很抱歉:(无法在settings.py中找到它,我彻底检查了它:| – 2011-04-27 12:15:18

MEDIA_URL = '/media/',而不是MEDIA_URL = 'http://localhost:8000/media/'

+0

我确实改变了它,但仍然没有进展。事实是,我首先写了“http:// localhost:8000/media /”,因为有一个例子评论说#Examples:“http://media.lawrence.com/media/”,“http:/ /example.com/media/“ – 2011-04-27 09:28:18

+0

我的appologies,我有一个小分号以及'/ media /'。但即使TemplateSyntaxError被删除。我的媒体仍然没有被看到。我的意思是,我仍然没有得到一个图像 – 2011-04-27 09:40:31

+1

正如我可以看到你的问题是在别的地方。无论如何,你永远不会知道你的项目将如何随着时间而改变。如果你网站的域名正在改变,你只需使用''/ media /''就可以保证安全。 – 2011-04-28 08:10:32