20

在整个 django 文档和许多教程中,人们似乎可以在使用{% static %}标签和使用{{ STATIC_URL }}正确的上下文处理器之间自由选择。

有人可以解释它们之间的区别是什么,以及使用 on 可能有什么优势。

4

1 回答 1

39

抽象的

{% static %}模板标签知道你的STATICFILES_STORAGE,使用STATIC_URL设置不是。

经验法则

使用模板标签。

手动连接是不好的做法(“我需要斜线吗?”),并且最终会咬你,通常当你决定更改静态文件存储时。

例子

经过身份验证的 URL

这是一个例子。您可能希望将 AWS S3 用于静态文件托管,同时不公开您的文件。然后,您将使用经过 AWS S3 身份验证的 URL 为这些用户提供服务。

正确的 URL 如下所示:

 https://s3.amazonaws.com/bucket/file.ext?signature=1234

{% static %}模板标签将允许您添加签名。使用STATIC_URL不会。

指纹 URL

以类似的方式,如果您的静态文件存储指纹您的文件,则使用STATIC_URL将不起作用。

于 2013-08-23T10:22:30.947 回答