Django模板图像即使使用媒体url和媒体根也不显示
静态图像显示正常。媒体文件夹中的文件未显示在Django模板图像即使使用媒体url和媒体根也不显示,django,image,django-templates,django-settings,Django,Image,Django Templates,Django Settings,静态图像显示正常。媒体文件夹中的文件未显示在html中。我尝试用各种方式设置媒体url,但都没有成功。我通过django管理面板上传了图片。产品名称显示良好。img.url显示/media/p2.jpg models.py class Product(models.Model): name = CharField(("Name"),max_length=256,blank=False) title_img = models.ImageField(null=Tr
html
中。我尝试用各种方式设置媒体url,但都没有成功。我通过django管理面板上传了图片。产品名称显示良好。img.url显示/media/p2.jpg
models.py
class Product(models.Model):
name = CharField(("Name"),max_length=256,blank=False)
title_img = models.ImageField(null=True, blank=True)
设置.py
PROJECT_ROOT = (os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(PROJECT_ROOT), "media_root")
url.py
urlpatterns = [
path('', ProductList.as_view() , name="product"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
template.html
{{p.name}}
<img src="{{p.title_img.url}}">
根据文件:和
根据文档:,您可以使用参数--unsecure运行服务器,这样您仍然可以在调试设置为False的情况下提供静态文件或媒体文件。我更改了一些设置,并能够解决它。可能错误在于我改为
project\u root/products/url.py
或project\u root/url.py
。我所做的总体变化:
在main url.py中,添加了以下内容
urlpatterns = [
path('', ProductList.as_view() , name="product"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
更改了设置。py
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media/')
MEDIA_URL = '/media/'
调试设置为true
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media/')
MEDIA_URL = '/media/'