在查看器中响应静态文件

时间:2011-07-28 08:04:13

标签: django django-views django-staticfiles

我正在使用Apache + wsgi_mod开发一个django应用程序。我定义了一个简单的查看器返回用户的图像。但是如果用户没有任何图片我想要渲染静态标准图像(取决于性别),存储在我的静态文件夹中。我知道我可以使用static.serve()但是django文档可以解决这个问题。 如何从观众提供静态文件?

更新:

viewer是views.py中定义的方法(例如,img)

我可能希望将HttpResponseRedirect()返回到我的静态内容。但我需要绝对的URL。

我需要这个,因为我有类似的东西:

def img(request, usr_id):
    usr_image = get_usr_image(usr_id)
    if usr_image == None:
        return respond_with_standard_image()
    else:
        response = HttpResponse(mimetype='image/jpg')
        response.write(usr_image)
        return response

并希望使用标准用户图片进行回复。

UPDATE2:

我可以这样做:

return HttpResponseRedirect('http://' + request.get_host() + settings.STATIC_URL + 'img/125px-Silver_-_male.png')

但我不满意。

1 个答案:

答案 0 :(得分:0)

Django不应该参与渲染图像或任何其他静态文件。您应该将用户图像放在自定义目录中,并直接使用Web服务器提供。

如果原始文件不存在,则可以使用重写规则轻松渲染其他图像。