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

Posted

技术标签:

【中文标题】无法在我的 django 模板中加载图像【英文标题】:Can't load image in my django template 【发布时间】:2017-08-01 21:12:30 【问题描述】:

我的项目文件夹是:

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

我想在我的profile.html 文件中包含一张图片。 我在profile.html 顶部使用% load staticfiles % 并在图像源中使用此代码:

<img src="% static "image/example.jpg" %" />

我在mr_doorbeen 中创建了一个文件夹并将其命名为static,在静态文件夹中创建了一个image 文件夹和图像,我放置了一个example.jpg,但它不起作用。 我的 static 文件夹路径错误还是什么? 我应该把我的 static 文件夹放在这个项目的哪里

【问题讨论】:

你在设置中的静态文件配置是什么? STATIC_URL = '/static/' 【参考方案1】:

对于给定的目录结构,您可以将静态文件放在与文件相同的目录,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')

【讨论】:

Tnx.i 会做的。【参考方案2】:

问题在于您需要在其中定义STATIC_URL 的设置文件。只需按照Django's documentation中的描述即可。

【讨论】:

你能解释更多吗?我不知道你在说什么! 我应该把 static 文件夹放在 setting.py 的旁边吗 确保django.contrib.staticfiles 包含在您的INSTALLED_APPS 中。还有你的图像的路径是什么?您需要将文件存储在应用程序中名为 static 的文件夹中。然后你可以在你的模板中使用% static "example.jpg" % 也可以按照文件结构和静态文件路径here. 我应该把 static 文件夹放在哪里。我不知道文件夹的确切位置。 views.pysetting.py 的下一个【参考方案3】:

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

from pathlib import Path, os

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

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于无法在我的 django 模板中加载图像的主要内容,如果未能解决你的问题,请参考以下文章

我无法从 JQuery ajax 调用中加载部分 Django 模板

在Django中加载网页后调用动态python函数

背景图像不想在css中加载

在 Spring Boot / FreeMarker 中加载图像时出现问题

Django:在使用模板继承时在基本模板文件中加载自定义过滤器时出现问题

在 .jar 中加载 freemarker 模板文件夹