无法在我的django模板中加载图片

时间:2017-03-11 15:10:47

标签: python django templates web django-templates

我的项目文件夹是:

mrdoorbeen
manage.py
    mr_doorbeen
         setting.py
    mrdoorbeen
      migrations
      templates
         index.html
         profile
             profile.html

我想在我的profile.html文件中添加图片。 我在{% load staticfiles %}的顶部使用profile.html,并在图片来源处使用此代码:

<img src="{% static "image/example.jpg" %}" alt="cant'load"/>

然后我在mr_doorbeen中创建一个文件夹并将其命名为static,并在静态文件夹中创建一个image文件夹和图片我放了一个example.jpg但它没有&#39工作。 我的 static 文件夹路径错误或是什么? 我应该在此项目

中放置我的static文件夹

4 个答案:

答案 0 :(得分:2)

对于给定的目录结构,您可以将静态文件放在与文件mr_doorbeen/settings.py

目录相同的级别上
mrdoorbeen
manage.py
    mr_doorbeen
      setting.py
    mrdoorbeen
      migrations
      templates
         index.html
         profile
             profile.html
    static/

您可以将静态文件设置为所述位置,如下所示。

# Static files configurations.
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

答案 1 :(得分:0)

问题在于您需要定义STATIC_URL的设置文件。只需按照Django's documentation中的说明操作即可。

答案 2 :(得分:0)

我遇到了同样的问题,并通过将 os 从 pathlib 和 STATICFILES_DIRS 行的导入添加到我的设置文件中来解决它,该行在其他响应之一中提供:

from pathlib import Path, os

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    )

STATIC_URL 已正确指定为“/static/”。我无法仅用 STATICFILES 行解决问题,直到我意识到 os 是 pathlib 中的一个需要先导入的函数。

答案 3 :(得分:0)

此外,除了导入 os 和添加刚才提到的行之外,直接从 static 下的文件夹(以应用程序命名)中复制 static 下的图像文件是使其工作的关键。我也将文件夹中的文件保持在静态下,因此存在冗余。

我这样做后,它起作用了,然后我可以直接删除静态下的图像文件(不接触静态下文件夹中的图像文件),它仍然有效。不知何故,直接在静态“教”Django 下复制它们以访问静态文件夹中的文件,我不明白,但它有效。