我试图解决这个问题,但我放弃了。我有图像文件夹,我想在html视图中显示我的一些图像,但它不会工作。
我遵循了本教程enter link 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)
答案 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" />