在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 错误 (500) - 据说是静态文件问题