【问题标题】:Image url not displaying my uploaded images when django project loaded onto heroku site当 django 项目加载到 heroku 网站时,图片 url 不显示我上传的图片
【发布时间】:2021-06-21 22:55:49
【问题描述】:

我上传的图片在上传到 heroku 时没有加载,我认为这与静态文件问题无关。当我设置 debug = False 他们很好,我知道当它是 false 时,django 使用自己来托管静态资产。所以设置它和我的图像加载正常,但如果我在 heroku 或我的本地环境上设置 Debug = True,情况并非如此。谁能帮我解决这个问题。

模板

<img class="img-fluid" style="height:auto;" src="{{post.work_img.url}}" alt="Generic placeholder image">

型号

class WorkExp(models.Model):
    work_img = models.ImageField(upload_to="work_images/")

app/urls.py

urlpatterns = [
       path("carrer/", WorkExpView, name="carrer_page"),
   ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

项目/urls.py

urlpatterns = [
     path("admin/", admin.site.urls),
     path("", include("blog.urls", namespace="blog")),
 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

【问题讨论】:

  • when it is false django uses itself,不,反之亦然。这意味着 Django 配置不好,可能settings.MEDIA_ROOT 的值有误。

标签: django heroku django-models django-views django-templates


【解决方案1】:

在 project/urls.py 中试试这个

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

而不是

+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

并设置 debug = True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多