Django:无法解析剩余部分(媒体即图像)
Posted
技术标签:
【中文标题】Django:无法解析剩余部分(媒体即图像)【英文标题】:Django: could not parse the remainder (media i.e. image) 【发布时间】:2011-08-13 16:22:43 【问题描述】:我正在使用 Django 开发 WebApp。我是新手,我有这个包含图像的 html 文件,我确实浏览了这个 "link",但现在我在解析媒体 URL 时遇到错误。任何人都可以让我知道出了什么问题吗?我已经检查了权限,即使它们是正确的。 !!
这是我包含的那张图片 -
<img border="2" src=" MEDIA_URL samplelogo.jpg" />
这是 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 的错误,方法是将 Media url 替换为 '/media/',如下面的@Torsten 建议的那样。但仍然没有得到图像!!
另一个查询,我使用 MEDIA_ROOT 和 MEDIA_URL 是否正确?因为有些地方我什至看到他们有 STATIC_URL 和 STATIC_ROOT !!
【问题讨论】:
我不知道你是否遗漏了什么,但我们肯定是,因为你还没有发布你引用这个的模板。 【参考方案1】: MEDIA_URL
输出空字符串?确保
1)。 'django.core.context_processors.media'
在TEMPLATE_CONTEXT_PROCESSORS
中
2)。您在模板中传递RequestContext
(通过在render_to_response
中传递context_instance=RequestContext(request)
或改用direct_to_template
)。
从 Django 1.8 'django.core.context_processors.media'
移至
'django.template.context_processors.media'
【讨论】:
@DrTyrsa:我对你的解释感到困惑。因为我是 Django 的新手,所以我想知道你的第一点,我可以在哪里添加它?即使使用我的views.py,我也得到了render_to_response('gharnivas/ghar.html'),它加载了第一个文件但没有图像。TEMPLATE_CONTEXT_PROCESSORS
在项目的 settigs.py 中。 'django.core.context_processors.media'
默认情况下应该在那里。此处理器将 MEDIA_URL 变量添加到您的模板。但是你应该使用RequestContext
。 Here的相关问题。
@DrTyrsa : 很抱歉 :(,无法在 settings.py 中找到它。我仔细检查了 :|
这很奇怪,但如果它不存在,您可以将它放在那里。在这里:docs.djangoproject.com/en/1.2/ref/settings/…你可以找到它默认的样子。
我应该自己添加吗?我的意思是我没有找到任何内置的 TEMPLATE_CONTEXT_PROCESSORS :|【参考方案2】:
MEDIA_URL = '/media/'
而不是MEDIA_URL = 'http://localhost:8000/media/'
【讨论】:
我确实改变了它,但仍然没有进展。事实是我首先写了“localhost:8000/media”,因为有一个示例被评论为#Examples:“media.lawrence.com/media”,“example.com/media” 我的道歉,我有一个小分号和 '/media/' 。但即使 TemplateSyntaxError 已删除。我的媒体仍然没有被看到。我的意思是,我仍然没有得到图像 我可以看到您的问题出在其他地方。无论如何,您永远不会知道您的项目将如何随着时间而改变。如果您网站的域名发生变化,您只需使用'/media/'
就可以安全。以上是关于Django:无法解析剩余部分(媒体即图像)的主要内容,如果未能解决你的问题,请参考以下文章
Django:TemplateSyntaxError:无法解析剩余部分:'|'来自“资格日期|”
无法解析剩余部分:来自 'item[0]' Django 的'[0]'
如何解决 Django 中显示“无法解析剩余部分”的 TemplateSyntaxError
模板语法错误无法解析剩余部分:来自“静态(“images/logo.png”)”的“(“images/logo.png”)”。在 django-jinja 模板中?