这个关于松弛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模板标签的信息