区别于;“从静态文件加载静态文件”;及;django.core.context“u processors.static”;在Django

区别于;“从静态文件加载静态文件”;及;django.core.context“u processors.static”;在Django,django,django-staticfiles,static-files,Django,Django Staticfiles,Static Files,在我学习Django如何处理静态文件时,我看到了两种不同的方式来提供静态文件,同时仍然允许可移植性 一种方法是在模板中执行以下操作: {% load static from staticfiles %} <img src="{% static "images/hi.jpg" %}" alt="Hi!" /> 哪个被认为是更好的做法?一种方式比另一种好吗?例如,问题有两种方法作为答案,还有第二种方法。任何见解都会有帮助。使用Django的默认静态文件存储时,这两种方法基本相同。

在我学习Django如何处理静态文件时,我看到了两种不同的方式来提供静态文件,同时仍然允许可移植性

  • 一种方法是在模板中执行以下操作:

    {% load static from staticfiles %}
    <img src="{% static "images/hi.jpg" %}" alt="Hi!" />
    

哪个被认为是更好的做法?一种方式比另一种好吗?例如,问题有两种方法作为答案,还有第二种方法。任何见解都会有帮助。

使用Django的默认
静态文件存储时,这两种方法基本相同。这两种方法都不知道任何实际文件。这两种方法只是将
静态URL
设置和实际文件路径连接在一起

使用自定义文件存储后端时可能会有所不同。如果您需要灵活性,例如,如果某些文件使用不同的静态url存储,您可以覆盖后端的
url
方法,根据文件的实际位置返回url。使用
STATIC\u URL
设置是不可能的。但是,这种情况非常罕见:大多数服务器将其静态文件存储在同一台服务器上或使用第三方服务的单个位置


当您定义
STATIC\u URL
设置且静态文件与网站位于同一域时,最好将其定义为根相对URL,例如
'/STATIC/'
。这增加了可移植性,并且不太可能导致错误。如果您已经涵盖了可以部署代码的所有系统,那么您将不再需要担心

谢谢你提供的信息。听起来大部分都是因为个人喜好?
<img src="{{ STATIC_URL }}images/hi.jpg" alt="Hi!" />
if DEBUG:
     STATIC_URL = 'localhost'
else:
     STATIC_URL = 'some_static_server_url'