Django 我的heroku网站上没有显示图像。静态文件加载良好

Django 我的heroku网站上没有显示图像。静态文件加载良好,django,Django,在我的网站静态文件加载没有问题。但未加载Training.image.url下包含图像的媒体文件 我试着在网上和这个论坛上寻找解决方案,但没有找到解决方案。以下是我文件的一小部分 设置.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'portfoliodb', 'USER': config('DB_USER'),

在我的网站静态文件加载没有问题。但未加载Training.image.url下包含图像的媒体文件

我试着在网上和这个论坛上寻找解决方案,但没有找到解决方案。以下是我文件的一小部分

设置.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'portfoliodb',
        'USER': config('DB_USER'),
        'PASSWORD': config('DB_PASSWORD'),
        'HOST': 'localhost',
        'PORT': config('DB_PORT'),
    }
}
-------------------------------------------------------
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'portfolio/static')
]

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

STATIC_URL = '/static/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

MEDIA_URL  = '/media/'
url.py文件

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', Trainings.views.home, name = 'homepage'),
    path('blog/', include('Blog.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

如果您的服务器处于debug False状态,默认情况下Django不提供静态文件。heroku上有一个关于该特定问题的帮助页面:

快速选项:白噪声 您可以安装一个软件包来快速解决此问题。这是Heroku提出的实际解决方案

Django不支持在生产环境中提供静态文件。然而,奇妙的WhiteNoise项目可以集成到Django应用程序中,它的设计正是为了实现这一目的

它只在
设置.py上显示几行

pip install whitenoise
更复杂的选项:django存储 如果您对性能有更多的要求,我建议您考虑在构建时将所有collectedstatic资产部署到S3实例,这是专门为此而设计的

爱好计划 多亏了一些搜索和此stackoverflow帖子:,它也可能来自您当前选择的计划:

您正在heroku上部署。可能是爱好计划。在此计划中,应用程序在不活动时处于休眠状态,然后在访问时重新部署。因此,上次运行期间创建的媒体文件将被删除

你应该升级你的计划或者考虑使用像CyrdDy3这样的第三方存储来存储媒体


没用。是因为我没有安装“dj数据库url”软件包吗?
dj数据库url
是关于在单个url中写入
数据库
var,绝对不相关。媒体文件是否加载到您的计算机上?构建应用程序时是否运行collectstatic?调试是否为false?是,在本地,它们在调试-(false和true)中都可见。但在heroku上,这些都不是。你知道解决方案吗?只是添加了另一个建议,可能是heroku特别提出的。。。您是否可以确认媒体文件在开始时工作,但在实例重新启动后停止工作?
MIDDLEWARE_CLASSES = (
    # Simplified static file serving.
    # https://warehouse.python.org/project/whitenoise/
    'whitenoise.middleware.WhiteNoiseMiddleware',
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'