【问题标题】:Django - What is different {% static %} and /static/?Django - {% static %} 和 /static/ 有什么不同?
【发布时间】:2017-09-19 16:55:51
【问题描述】:

我正在学习 Django。在我的 settings.py 中:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

当我尝试在模板中添加图像时,

<img src="{% static "img/person.png" %}"/>

<img src="{{ STATIC_URL }}img/person.png" />

<img src="/static/img/person.png" />

这三个在浏览器中都显示为:

<img src="/static/img/person.png" />

那么,它们有什么不同呢?

如果没有问题,我可以使用

<img src="/static/img/person.png" /> 

在模板代码中?

【问题讨论】:

  • 使用第一种方法,您可以在一个地方更改STATIC_URL,一切都会正常工作。使用硬编码的 URL,您必须遍历整个代码库并手动更改(可能)数百个 URL。您还可以根据环境自定义STATIC_URL。例如在生产环境中从 CDN 加载静态文件。

标签: python django


【解决方案1】:

硬编码 URL &lt;img src="/static/img/person.png" /&gt; 的问题在于,如果将来您想更改静态 URL,则必须检查所有文件以将其替换为较新的文件,通常在生产中有时我们希望使用 CDN 来提供静态内容这不是通过/static/ 提供的。

对于{% static %}{{ STATIC_URL }} 之间的其他区别,请查看answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 2020-04-06
    • 2011-04-09
    • 2013-09-22
    • 2015-10-04
    • 2014-08-05
    相关资源
    最近更新 更多