媒体文件夹中的图片未显示django模板

时间:2018-05-04 14:22:56

标签: django python-3.x django-templates django-views django-settings

我在我的媒体文件夹中有图像,我想显示它们但是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>

显示正确的路径但未显示图像,我无法找出问题所在。感谢

2 个答案:

答案 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)

这对我有用。如果也适合您,请接受答案