使用{{STATIC_URL}}和{%static%}之间的区别是什么

时间:2013-08-23 10:17:02

标签: python django

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

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

1 个答案:

答案 0 :(得分:39)

摘要

{% static %}模板标记为aware of your STATICFILES_STORAGE,使用STATIC_URL设置不是。

经验法则

使用模板标签。

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

实施例

经过身份验证的网址

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

正确的网址如下所示:

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

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

指纹识别网址

以类似的方式,如果您的静态文件存储指纹文件,使用STATIC_URL将无效。

相关问题