【问题标题】:Relative url mapping for images in django imagefielddjango imagefield中图像的相对url映射
【发布时间】: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 网址。

【问题讨论】:

    标签: django django-templates django-urls django-models


    【解决方案1】:

    这不是您的 urlconf 的功能,而是您如何在模板中显示图像。你可能正在做这样的事情:

    <img src="site_media/images/image.jpg">
    

    什么时候该做

    <img src="/site_media/images/image.jpg">
    

    ...注意最初的斜线。或者,如果您使用的是 STATIC_URL 或 MEDIA_URL,请确保在 settings.py 中使用初始斜杠定义它们。

    【讨论】:

    • 这解决了问题&lt;img title="" alt="" src="/{{ post.photo.url }}"&gt;&lt;/a&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2015-02-22
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多