{%load static%}的用途是什么?

时间:2019-12-12 15:53:55

标签: django django-templates django-static

我正在用realpython https://realpython.com/get-started-with-django-1/做django教程 在其中一个模板中,他们添加了{% load static %}来为应用程序加载静态文件。在同一模板中,他们还加载了这样的图像<img class="card-img-top" src="{% static project.image %}">。这里的static关键字告诉django在project.image的{​​{1}}中定义文件名。当我移除static folder时,图像仍然显示。那么,如果没有它就可以完美地渲染图像,那我为什么还要这个部分呢?代码如下:

{% load static %}

1 个答案:

答案 0 :(得分:2)

您使用的是HTML注释,该注释未由Django处理,而是将其忽略并执行template标记。尝试使用模板注释{# you long comment #}

因此代码更改为

   {% extends "base.html" %}
{# {% load static %} #}

{% block page_content %}
<h1>Projects</h1>
<div class="row">
    {% for project in projects %}
    <div class="col-md-4">
        <div class="card mb-2">
            <img class="card-img-top" src="{% static project.image %}">
            <div class="card-body">
                <h5 class="card-title">{{ project.title }}</h5>
                <p class="card-text">{{ project.description }}</p>
                <a href="{% url 'project_detail' project.pk %}" class="btn btn-primary">Read more</a>
            </div>
        </div>
    </div>
    {% endfor %}
</div>
{% endblock %}

{% load static %}实际上加载标签static。该标签可让您嵌入静态文件https://docs.djangoproject.com/en/3.0/howto/static-files/#configuring-static-files的链接。

您还可以创建自定义标签,内容为https://docs.djangoproject.com/en/3.0/howto/custom-template-tags/