在我的开发中。环境中有一个/ static /文件夹,其中包含atm。为网站存储一些图像。
settings.py 中的我的INSTALLED_APPS变量确实包含 django.contrib.staticfiles app和
STATIC_URL =' / static /'
STATICFILES_DIRS =(os.path.join(BASE_DIR,'静态'),)
urls.py 中的 urlpatterns 变量有此
urlpatterns + = static(settings.STATIC_URL, DOCUMENT_ROOT = settings.STATIC_ROOT)
最后,在我的template.html文件中,我正在遍历我的 cardset 对象,并尝试为每个对象提供这样的图像
<img src=" {{STATIC_URL}}/images/{{cardset.image}}" alt="{{ cardset.name }}" class="bn"/>
现在,问题是:
a。){{STATIC_URL}}解析为空字符串。
b。)我想我不能在这里使用静态标签,因为变量{{cardset.image}}在django tamplate {%...% 使用静态标记。
请问您应该在这里尝试做些什么?
答案 0 :(得分:0)
由于cardset.image
是一个字符串,因此您的假设b为false;标签与变量完美配合:
{% static cardset.image %}
({{ STATIC_URL }}
无法正常工作的原因可能是因为您尚未将其传递给模板;它不会自动出现,它只是一个标准模板可变的。)
答案 1 :(得分:0)
在我看来,您仍然可以使用static
标记。要在不使用图像字段的情况下构建字符串,您的链接只需稍微调整一下:
<img src="{% static "images/" %}{{cardset.image}}" alt="{{ cardset.name }}" class="bn"/>
应该在html中正确呈现。根据您{{cardset.image}}
的样子,您可以摆脱中间的images/
部分。
请记住,您还需要在模板顶部加入{% load staticfiles %}
。