媒体文件夹中的图像未显示 django 模板
Posted
技术标签:
【中文标题】媒体文件夹中的图像未显示 django 模板【英文标题】:Images from media folder is not displaying django template 【发布时间】:2018-10-15 01:49:29 【问题描述】:我的媒体文件夹中有图像,我想显示它们,但 Django 不显示静态文件夹以外的图像。 在我的设置中
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static'),]
MEDIA_ROOT = BASE_DIR
MEDIA_URL = '/media/'
在我的 urls.py 中,我在 url 模式之后添加了这个
+ static(MEDIA_URL, document_root=MEDIA_ROOT)
在我的模板中
<img class="card-img-top" style="" src="result.object.thumbnail.url" ></a>
<p>result.object.thumbnail.url</p>
它显示了正确的路径但没有显示图像,我无法找出问题所在。谢谢
【问题讨论】:
MEDIA
文件夹是否放置在您项目中的正确位置?路径有效吗?
先生的媒体文件夹放在BASE_DIR,是的,路径是正确的!
检查我的答案,以防你的项目根目录中有media
forder
【参考方案1】:
您的MEDIA_ROOT
具有项目根目录的路径。你必须加入它,你的media
的目录。 (我想media/
是您上传所有媒体的目录名称)
我认为你应该有这样的MEDIA_ROOT
。
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
【讨论】:
抱歉,这个我已经试过了,在你回答后我又试了一次,但还是不行 进入 Django admin,找到你的模型实例,尝试在那里显示图像,并显示 URL 中显示的path
网址是 - /media/products/media/images/RAJASTHAN/SIKAR/332001/panshar8688/new/1632140276/thumbnail/1632140276.jpg
在 admin 中显示图片 url 但点击后显示 KeyError
错误在这里很明显,/media/products/media/images
【参考方案2】:
MEDIA_ROOT 有您项目的根路径。 MEDIA_URL 必须正确。检查以下 setting.py 你的项目
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
urls.py 项目
urlpatterns = [
url(r'^admin/', admin.site.urls),
# url('', include('app1.urls')),
url('home/', myapp_views.index)
] + static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
过去 5 天我遇到了同样的错误,请遵循 django 文档、许多教程但对我没有任何帮助,但最终我找到了解决方案
我在主页上显示 index.html 意味着我没有在我的应用程序和项目 url 文件的 url 中提供任何端点
app/urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url('', 'views.index', name='index page'),
]
project/urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
# url('', include('app1.urls')),
url('', myapp_views.index)
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
其余代码保持不变,我在两个文件中更改了以下内容
app/urls.py
url('home/', 'views.index', name='index page'),
project/urls.py
url('home/', myapp_views.index)
这对我有用。如果也适合您,请接受答案
【讨论】:
【参考方案3】:这是我运行 wagtail 的 django v3.2 的一部分 HTTP 日志。看起来 django 试图告诉我丢失的媒体在哪里,但无法告诉我。因为这是一个带有“特色页面”的图库子图像的丛林页面,所以我的浏览器中的视图源不会显示图像文件尝试,但我假设它与配置错误的 MEDIA_ROOT 的 OP 的问题相同。奇怪的是,当我在 wagtail 管理员中打开子页面时,在页面的链接图像中没有看到任何错误。任何人都知道为什么丢失的图像不会冒泡到 HTTP 日志中,或者是什么导致“媒体/未找到”替换导致 404 的“真实”项目?
[25/Aug/2021 20:28:53]“GET /static/wagtailadmin/images/bg-dark-diag.svg HTTP/1.0”200 700
未找到:/media/not-found [25/Aug/2021 20:29:18] “GET /media/not-found HTTP/1.0”404 3252
未找到:/media/not-found [25/Aug/2021 20:29:18]“GET /media/not-found HTTP/1.0”404 3252
【讨论】:
这并不能真正回答问题。如果您有其他问题,可以点击 提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起更多的关注。以上是关于媒体文件夹中的图像未显示 django 模板的主要内容,如果未能解决你的问题,请参考以下文章
媒体文件未在模板中正确加载 (HTML <img>)。静态文件/图像正常工作