在heroku中反应+ django部署并且图像没有通过

Posted

技术标签:

【中文标题】在heroku中反应+ django部署并且图像没有通过【英文标题】:react + django deploy in heroku and image isn't coming through 【发布时间】:2020-06-13 17:52:41 【问题描述】:

settings.py

STATICFILE_DIRS = [os.path.join(
BASE_DIR, 'build/static')]

STATICFILES_STORGE = 
"whitenoise.storage.CompressedManifestStaticFilesStorage"
 MEDIA_URL = "/media/"

 MEDIA_ROOT = os.path.join(BASE_DIR, "media/images")

 WHITENOISE_ROOT = os.path.join(BASE_DIR, "media")

wsgi.py

import os

from django.core.wsgi import get_wsgi_application
# from whitenoise.django import DjangoWhiteNoise
from whitenoise import WhiteNoise

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dj_gmc.settings')

application = get_wsgi_application()
 # application = DjangoWhiteNoise(application)
 application = WhiteNoise(application, root='build/static')
 application.add_files('build', prefix='more-files/')
 application.add_files('media', prefix='more-files/')

找不到在普通本地主机上工作的图像源 但是在部署所有图像时,直到前端图像都消失了

【问题讨论】:

【参考方案1】:

经过多次搜索,问题已解决,如果有人感兴趣,这个解决方案

settings.py

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

STATICFILES_DIRS = (
  os.path.join(BASE_DIR, 'build/static'),
  os.path.join(BASE_DIR, 'build/media'),
  os.path.join(BASE_DIR, 'media/images')
  )


STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
MEDIA_URL = "/media/"

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

重要的 urls.py

 from django.views.static import serve

re_path(r'^static/(?P<path>.*)$', serve,
        'document_root': settings.STATIC_ROOT),
re_path(r'^media/(?P<path>.*)$', serve, 
    "document_root": settings.MEDIA_ROOT
)

【讨论】:

什么是re_path,应该在哪里添加? 将 re_path 重命名为 path 并删除 r 并将其放入您的主 urls.py 中

以上是关于在heroku中反应+ django部署并且图像没有通过的主要内容,如果未能解决你的问题,请参考以下文章

在heroku上部署django网站时出错

在 Heroku 服务器上部署 Django 错误 (500) - 据说是静态文件问题

部署 django 应用程序以加快加载速度的最佳方式

Django,创建反应应用程序,Heroku

PySFTP失败,“在部署Django / Heroku时出现”找不到主机X的主机密钥”

React 和 Django 网站未在 Heroku 上加载