在整个django文档和许多教程中,人们似乎在使用{% static %}
标记和使用{{ STATIC_URL }}
和正确的上下文处理器之间自由选择。
有人可以解释它们之间的区别是什么,以及使用它们可能有什么优势。
答案 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
将无效。