首页 > 解决方案 > 当 django 项目加载到 heroku 网站时,图片 url 不显示我上传的图片

问题描述

我上传的图片在上传到 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/")

应用程序/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)

标签: djangoherokudjango-modelsdjango-viewsdjango-templates

解决方案


在 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


推荐阅读