在整个 django 文档和许多教程中,人们似乎可以在使用{% static %}
标签和使用{{ STATIC_URL }}
正确的上下文处理器之间自由选择。
有人可以解释它们之间的区别是什么,以及使用 on 可能有什么优势。
{% static %}
模板标签知道你的STATICFILES_STORAGE
,使用STATIC_URL
设置不是。
使用模板标签。
手动连接是不好的做法(“我需要斜线吗?”),并且最终会咬你,通常当你决定更改静态文件存储时。
这是一个例子。您可能希望将 AWS S3 用于静态文件托管,同时不公开您的文件。然后,您将使用经过 AWS S3 身份验证的 URL 为这些用户提供服务。
正确的 URL 如下所示:
https://s3.amazonaws.com/bucket/file.ext?signature=1234
{% static %}
模板标签将允许您添加签名。使用STATIC_URL
不会。
以类似的方式,如果您的静态文件存储指纹您的文件,则使用STATIC_URL
将不起作用。