使用Django创建的网站,但是将图像部署到heroku时未显示,但在localhost中显示

问题描述 投票:1回答:1

图像来自管理员上载图像的表格。enter image description here

这是我用于存储静态文件和媒体的设置

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'portfolio/static/')

 ]

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')

MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'

我创建的模型

from django.db import models

# Create your models here.
class ProfileImage(models.Model):
    image = models.ImageField(upload_to='images/')

class Job(models.Model):
    image = models.ImageField(upload_to='images/')
    summary = models.CharField(max_length= 200)

class Project(models.Model):
    image = models.ImageField(upload_to='images/')
    summary = models.TextField()
    title = models.CharField(max_length=30)
    link = models.URLField(max_length=200, null=True, blank=True)

    def __str__(self):
        return(self.title)

class Social(models.Model):
    image = models.ImageField(upload_to='images/')
    title = models.CharField(max_length=30)
    link = models.URLField(max_length=200, null=True, blank=True)

    def __str__(self):
        return(self.title)

class Skills(models.Model):
    title = models.CharField(max_length=20)

    def __str__(self):
        return(self.title)

在模板中,我已经:

 <img src="{{profile_pic.image.url}}" height="600px" width="500x" class="img-fluid img-thumbnail"
            alt="Responsive image">
          <br>

我认为:

from django.shortcuts import render
from .models import Job, Skills, Project, Social, ProfileImage

# Create your views here.
def home(request):
    jobs = Job.objects.all()
    skills = Skills.objects.all()
    projects = Project.objects.all()
    socials = Social.objects.all()
    profile_pic = ProfileImage.objects.all().first()
    context = {'jobs':jobs, 'skills':skills, 'projects':projects, 'socials':socials, 'profile_pic':profile_pic}
    return render(request, 'jobs/home.html', context)

当我部署到heroku时显示:

python django image heroku deployment
1个回答
0
投票

您如何提供静态文件?您可以使用Whitenoise或其他服务(例如Google Cloud或AWS)在生产中提供静态文件。

© www.soinside.com 2019 - 2024. All rights reserved.