Я не смог загрузить в админку wagtail, когда мой проект был развернут на Heroku

Когда я загрузил файлы изображений на wagtail, хотя он хорошо читает заголовок изображения, но само изображение было уничтожено. поэтому заголовки отображаются как на экране администратора, так и на экране пользователя.

Я просмотрел несколько блогов и сайтов о медиа и статике, но эта проблема не решается уже почти три дня.

Среда разработки

python==3.7.3
Django==3.2.6
gunicorn==20.1.0
psycopg2==2.9.1
wagtail==2.14
whitenoise==5.3.0
DB == postgres
server == Heroku stack-18

моя попытка и ошибка

① добавили следующий код в urls.py

python


    + static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

②changed like follow

    application = get_wsgi_application()
    application = DjangoWhiteNoise(application)
    ↓
    application = Cling(get_wsgi_application())

связанный код (те, которые могут быть связаны с этой проблемой)

    #production.py    
    from __future__ import absolute_import, unicode_literals
    import dj_database_url
    
    import os
    from .base import *
    
    #省略
    
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
    
    COMPRESS_OFFLINE = True
    COMPRESS_CSS_FILTERS = [
        'compressor.filters.css_default.CssAbsoluteFilter',
        'compressor.filters.cssmin.CSSMinFilter',
    ]
    
    COMPRESS_CSS_HASHING_METHOD = 'content'
    
    #省略
    
    #urls.py
    
    urlpatterns = [
        path('django-admin/', admin.site.urls),
        path('admin/', include(wagtailadmin_urls)),
    ] + static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS) +
    static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    
    
    #wsgi.py
    import os
    from dj_static import Cling
    from django.core.wsgi import get_wsgi_application
    
    application = Cling(get_wsgi_application())
    
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "squjap.settings.production")
    
    #base.py
    
    MIDDLEWARE = [
        'whitenoise.middleware.WhiteNoiseMiddleware',
    ]
    
    STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
    
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [os.path.join(PROJECT_DIR, 'static')]
        
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    

Мне очень нужна ваша помощь, спасибо вам

Вернуться на верх