【问题标题】:react + django deploy in heroku and image isn't coming through在heroku中反应+ django部署并且图像没有通过
【发布时间】: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/')

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

【问题讨论】:

    标签: django reactjs heroku


    【解决方案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 中
    猜你喜欢
    • 1970-01-01
    • 2016-04-02
    • 2022-01-25
    • 2020-12-31
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2019-07-15
    相关资源
    最近更新 更多