我正在用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 %}
答案 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/