链接到django静态文件不起作用

时间:2015-11-10 09:33:07

标签: django django-templates django-views

在我的开发中。环境中有一个/ static /文件夹,其中包含atm。为网站存储一些图像。

  1. settings.py 中的我的INSTALLED_APPS变量确实包含 django.contrib.staticfiles app和

    STATIC_URL =' / static /'

    STATICFILES_DIRS =(os.path.join(BASE_DIR,'静态'),)

  2. urls.py 中的 urlpatterns 变量有此

    urlpatterns + = static(settings.STATIC_URL,  DOCUMENT_ROOT = settings.STATIC_ROOT)

  3. 最后,在我的template.html文件中,我正在遍历我的 cardset 对象,并尝试为每个对象提供这样的图像

    <img src=" {{STATIC_URL}}/images/{{cardset.image}}" alt="{{ cardset.name }}" class="bn"/>
    
  4. 现在,问题是:

    a。){{STATIC_URL}}解析为空字符串。

    b。)我想我不能在这里使用静态标签,因为变量{{cardset.image}}在django tamplate {%...% 使用静态标记。

    请问您应该在这里尝试做些什么?

2 个答案:

答案 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 %}