{{ request.META.HTTP_HOST }} 在 Django 1.6.4 中不支持?获取主机 URL 的简单方法?

1 投票
2 回答
1200 浏览
提问于 2025-04-18 05:54

我之前在Django 1.5中使用{{ request.META.HTTP_HOST }},但升级到1.6后,这个标签就不管用了。

有没有什么简单的方法可以直接在模板里获取URL或主机名,而不需要写一些自定义的视图之类的东西?

在Django 1.6中,有没有其他可以直接在模板里使用的标签?

2 个回答

1

get_host()这个方法在主机后面有多个代理的时候会出问题。解决这个问题的一种方法是使用中间件来重写代理的头信息,下面的例子展示了这个方法。你可以查看详细信息在这个链接:https://docs.djangoproject.com/en/1.6/ref/request-response/#django.http.HttpRequest.get_host

1

使用 request.get_host()

这个方法会返回请求的来源主机,也就是发起请求的地方。它会先查看 HTTP_X_FORWARDED_HOST 这个信息(前提是你开启了 USE_X_FORWARDED_HOST),如果没有找到,再查看 HTTP_HOST 这个头部信息。

撰写回答