我在我的媒体文件夹中有图像,我想显示它们但是Django不显示静态文件夹以外的图像。 在我的设置
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static'),]
MEDIA_ROOT = BASE_DIR
MEDIA_URL = '/media/'
在url模式之后的urls.py中,我添加了这个
+ static(MEDIA_URL, document_root=MEDIA_ROOT)
在我的模板中
<img class="card-img-top" style="" src="{{result.object.thumbnail.url}}" alt=""></a>
<p>{{result.object.thumbnail.url}}</p>
显示正确的路径但未显示图像,我无法找出问题所在。感谢
答案 0 :(得分:2)
您的MEDIA_ROOT
拥有项目根目录的路径。你必须加入它,media
的目标。 (我认为media/
是您上传所有媒体的目录名称)
我想你应该有MEDIA_ROOT
这样的。
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
答案 1 :(得分:0)
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 文档,很多教程但对我没有用,但最终我找到了解决方案
我在 home 上显示 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)
这对我有用。如果也适合您,请接受答案