无法从项目目录中看到图像

时间:2016-09-27 11:06:40

标签: python django

我试图解决这个问题,但我放弃了。我有图像文件夹,我想在html视图中显示我的一些图像,但它不会工作。

我遵循了本教程enter link description here

这是我的项目树:

enter image description here

正如您所看到的,我尝试创建大量目录以使其正常工作。

这是我的承诺:

STATIC_URL = '/static/'

# STATICFILES_DIRS = [
#     os.path.join(BASE_DIR, "media"),
#     '/webstore/',
# ]

MEDIA_ROOT = '/webstore/media/'
MEDIA_URL = '/media/'

这是我的html视图,我尝试显示我的图像

<img src="/media/example.jpg" />

这是我的urls.py文件

    from django.conf.urls import url, include
from django.contrib import admin
from djangoproject import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^', include('webstore.urls')),
    url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

3 个答案:

答案 0 :(得分:2)

MEDIA_URL是用于提供用户上传的媒体文件的基本网址,MEDIA_ROOT是他们所在的本地路径。

因此请尝试在setting.py

上使用它
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

并在您的主urls.py

urlpatterns = [
    ....
]

if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

并且整个图片是否应保存在djangoproject/media/

还有一件事不要忘记在{% load staticfiles %}文件的顶部添加html{% load staticfiles %}告诉Django加载django.contrib.staticfiles应用程序提供的staticfiles模板标记。

答案 1 :(得分:1)

MEDIA_ROOT是保存用户上传文件的目录的绝对文件系统路径。

STATIC_ROOT是您要从中提供这些文件的目录的绝对文件系统路径。

因为,您想要提供图像,请将静态目录的绝对路径提供给STATIC_ROOT 在STATIC_URL中给出相对于STATIC_ROOT的相对路径。 另外,使用static_url和static_root更改urls.py

另一个建议:更简单的显示图像的方法是将其上传到图像服务器,如imgur,并在html中提供图像的网址。 对于例如:

<img src="http://i.stack.imgur.com/nbegK.png" />

答案 2 :(得分:1)

你唯一需要做的就是

MEDIA_ROOT = '/absolutepath/to/djangoproject/webstore/media/'

然后你已经

MEDIA_URL = '/media/'

并尝试

<img src="/media/example.jpg" />