Django 在根文件夹中找不到“/media/image.png”
Posted
技术标签:
【中文标题】Django 在根文件夹中找不到“/media/image.png”【英文标题】:Django cannot find "/media/image.png" when placed in root folder 【发布时间】:2021-06-06 08:28:21 【问题描述】:我有以下结构
my app/
|_my_app/
| |_templates/
|_static/
|_media/
|_utils/
|_main.py
|_manage.py
|_.gitignore
并拥有template.html
<img src="./media/image.png">
然后它会抛出 GET 404 错误Cannot find /media/image.png
。
我也尝试过相对路径(相对于模板,即<img src="../../media/image.png">
。
将媒体文件夹移动到静态(包括% load static %
我可以这样做
<img src="% static '/media/image.png'">
没有任何问题。
-
为什么第一部分找不到
./media/image.png
?
有没有办法使用另一个标签(例如 media
)来执行“静态”技巧,例如 <img src="% media 'image.png' ">
以避免绝对路径?
【问题讨论】:
您必须在设置和 urls.py 中添加 MEDIA_ROOT 和 MEDIA_URL。 您需要手动编写 url 的事实意味着这不是用户媒体。这意味着这是一个静态图像。然后把它放在你的静态文件夹中。 Biplove,我已经添加了这些,它不会工作 您是要显示上传的内容还是静态内容? @CutePoison 检查这个问题What is the difference between static files and media files in Django? 【参考方案1】:您可以在静态文件夹中创建一个名为 img 的新文件夹,然后将您的图像粘贴到 img 文件夹中,这样图像的路径将如下所示: 静态 -> img -> image.png。您可以像这样在 HTML 中加载图像:
<img src="% static 'img/image.png'">
【讨论】:
这正是我目前正在做的解决方法 - 问题是,为什么我不能在根目录中放置一个名为media
的文件夹,然后使用 scr="media/img.png"
以上是关于Django 在根文件夹中找不到“/media/image.png”的主要内容,如果未能解决你的问题,请参考以下文章
在根项目中找不到 Android Studio 0.8 任务组合