如何在Django模板中获取静态资产的完整URL



这个关于松弛URL展开的指南说要使用图像的完整URL。

在Django中,静态资产是通过以下方式获得的:

{% static '/path/to/asset.jpg' %}

其返回部分路径。

这个松散的答案说,要获得某个东西的完整URL,请使用request.build_absolute_uri。例如:

{% request.build_absolute_uri 'some_thing' %}

然而,我不知道如何将static标记(它可以添加破坏缓存的十六进制数字(和request.build_absolute_uri函数结合起来。

如何获取Django模板中静态资产的完整URL?

我给出了答案,但如果有人找到更好的答案,我很高兴。

{{request.scheme}}://{{ request.get_host }}{% static '/path/to/asset.jpg' %}

我还为第一部分制作了一个标签:

from django import template
register = template.Library()

@register.simple_tag(takes_context=True)
def request_scheme_and_host(context):
request = context['request']
return request.scheme + '://' + request.get_host()

然后是

{% load tags %}
{% request_scheme_and_host %}{% static '/path/to/asset.jpg' %}

您可以阅读更多关于创建Django模板标签的信息

相关内容

  • 没有找到相关文章

最新更新