Python 使用Django创建网站,但在部署到heroku时图像不会显示,而是在localhost中显示
图像来自管理员上载图像的表格: 以下是我存储静态文件和媒体的设置:Python 使用Django创建网站,但在部署到heroku时图像不会显示,而是在localhost中显示,python,django,image,heroku,deployment,Python,Django,Image,Heroku,Deployment,图像来自管理员上载图像的表格: 以下是我存储静态文件和媒体的设置: 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/' STAT
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>
当我部署到heroku时,它显示:
您如何为静态文件提供服务?您可以使用该服务或其他服务,如google cloud或aws,在生产环境中为静态文件提供服务
以下是Heroku在他们的开发中心上关于如何在生产中服务静态文件的内容 您如何为静态文件提供服务?您可以使用该服务或其他服务,如google cloud或aws,在生产环境中为静态文件提供服务
以下是Heroku在他们的开发中心上关于如何在生产中服务静态文件的内容 我刚开始部署到heroku can,对whitenoise了解不多。你能解释一下我如何使用白噪音吗?谢谢,这样做其实很简单!Heroku有一个关于如何在生产中配置Heroku上的whitenoise的步骤,所以我会尝试如下:看看你是否能实现你的目标。实际上,我正在从管理面板上传图像,“/app/media/images/flask.jpg”不存在。当我点击管理面板内的图像时,会显示这一点。我搜索了答案,发现图像应该存储在S3服务器中。S3是否有不需要任何信用卡详细信息的替代方案?我也知道这一点。您必须将它们保存在s3中,然后才能在生产中使用它们。您知道,我仍在学习如何真正理解生产中使用的整个静态文件。恐怕我不能为您指出任何其他不需要信用卡信息的方向。看看数字海洋或谷歌云!祝你好运如果您找到任何方法来完成它,请让我知道。我是新部署到heroku can的,对whitenoise不太了解。你能解释一下我如何使用白噪音吗?谢谢,这样做其实很简单!Heroku有一个关于如何在生产中配置Heroku上的whitenoise的步骤,所以我会尝试如下:看看你是否能实现你的目标。实际上,我正在从管理面板上传图像,“/app/media/images/flask.jpg”不存在。当我点击管理面板内的图像时,会显示这一点。我搜索了答案,发现图像应该存储在S3服务器中。S3是否有不需要任何信用卡详细信息的替代方案?我也知道这一点。您必须将它们保存在s3中,然后才能在生产中使用它们。您知道,我仍在学习如何真正理解生产中使用的整个静态文件。恐怕我不能为您指出任何其他不需要信用卡信息的方向。看看数字海洋或谷歌云!祝你好运如果你想办法把它做完,请告诉我。
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)