django imagefield中图像的相对url映射
Posted
技术标签:
【中文标题】django imagefield中图像的相对url映射【英文标题】:Relative url mapping for images in django imagefield 【发布时间】:2011-09-12 16:50:44 【问题描述】:我正在使用 imagefield 来渲染图像。这些是网址;
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
'document_root': site_media),
(r'^$', 'webapp.blog.views.index'),
url(
r'^blog/view/(?P<slug>[^\.]+).html',
'webapp.blog.views.view_post',
name='view_blog_post'),
这些是视图:
def index(request):
return render_to_response('index.html',
'categories': Category.objects.all(),
'posts': Blog.objects.all()[:5]
)
def view_post(request, slug):
return render_to_response('view_post.html',
'post': get_object_or_404(Blog, slug=slug),
)
如果我用 posts.photos.url
调用索引页面中的图像对象,它会正确映射到http://127.0.0.1/site_media/images/image.jpg
。但是如果我在 view_post 模板上调用图像对象,它会被映射到http://127.0.0.1/blog/view/site_media/images/image.jpg
。如何将view_post
函数映射图像网址设置为正确的http://127.0.0.1/site_media/images/image.jpg
网址。
【问题讨论】:
【参考方案1】:这不是您的 urlconf 的功能,而是您如何在模板中显示图像。你可能正在做这样的事情:
<img src="site_media/images/image.jpg">
什么时候该做
<img src="/site_media/images/image.jpg">
...注意最初的斜线。或者,如果您使用的是 STATIC_URL 或 MEDIA_URL,请确保在 settings.py 中使用初始斜杠定义它们。
【讨论】:
这解决了问题<img title="" alt="" src="/ post.photo.url "></a>
以上是关于django imagefield中图像的相对url映射的主要内容,如果未能解决你的问题,请参考以下文章