【问题标题】:Django Template Image not displaying even with media url and media root即使使用媒体 url 和媒体根目录,Django 模板图像也不会显示
【发布时间】:2021-03-09 19:50:17
【问题描述】:

静态图像正常显示。媒体文件夹中的文件未显示在html 中。我尝试以各种方式设置 media_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)

settings.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")

urls.py

urlpatterns = [
        path('', ProductList.as_view() , name="product"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

模板.html

{{p.name}}
<img src="{{p.title_img.url}}">

显示名称而不显示图像。在控制台中,我得到

"GET /media/p2.jpg HTTP/1.1" 404 2690

【问题讨论】:

    标签: django image django-templates django-settings


    【解决方案1】:

    我更改了一些设置并能够解决它。可能错误是我更改了project_root/products/urls.pyproject_root/urls.py。我所做的总体更改:

    在主 urls.py 中,添加了这些

    urlpatterns = [
            path('', ProductList.as_view() , name="product"),
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    

    已更改settings.py

    MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media/')
    MEDIA_URL = '/media/'
    

    【讨论】:

      【解决方案2】:

      根据文档:https://docs.djangoproject.com/en/3.1/howto/static-files/#serving-static-files-during-developmenthttps://docs.djangoproject.com/en/3.1/howto/static-files/#serving-files-uploaded-by-a-user-during-development

      1. 它只能用于开发目的,
      2. settings.DEBUG 必须设置为 True,
      3. 仅当 url 是本地的时才有效

      在您的情况下,1 和 3 接缝没问题,但您的 DEBUG 设置是否设置为 True?

      根据文档:https://docs.djangoproject.com/fr/3.1/ref/contrib/staticfiles/#runserver,您可以使用参数 --insecure 运行服务器,这样您仍然可以在 DEBUG 设置为 False 的情况下提供静态文件或媒体文件。

      【讨论】:

      • 调试设置为真
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-04
      • 2012-06-02
      • 2017-01-11
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多