Я не смог загрузить в админку 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/'
Мне очень нужна ваша помощь, спасибо вам