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 模板错误:无法解析剩余部分

如何解决 Django 中显示“无法解析剩余部分”的 TemplateSyntaxError

TemplateSyntaxError,无法解析剩余部分

模板语法错误无法解析剩余部分:来自“静态(“images/logo.png”)”的“(“images/logo.png”)”。在 django-jinja 模板中?