2

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

    {% 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 %}
4

1 回答 1

4

您正在使用 Django 未处理的 HTML 注释,而是忽略它并执行模板标记。尝试使用模板注释{# 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/

于 2019-12-12T16:01:02.883 回答