我的项目文件夹是:
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
文件夹
答案 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 下复制它们以访问静态文件夹中的文件,我不明白,但它有效。