Изображения не отображаются на моем сайте геройку. статические файлы загружаются нормально - PullRequest
1 голос
/ 29 октября 2019

На моем сайте статические файлы загружаются без проблем. Но файлы мультимедиа в файле Training.image.url, содержащие изображения, не загружаются.

Я пытался найти решение в Интернете и на этом форуме, но не нашел решения. Ниже приводится небольшая часть моих файлов.

settings.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'portfoliodb',
        'USER': config('DB_USER'),
        'PASSWORD': config('DB_PASSWORD'),
        'HOST': 'localhost',
        'PORT': config('DB_PORT'),
    }
}
-------------------------------------------------------
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'portfolio/static')
]

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

STATIC_URL = '/static/'

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

MEDIA_URL  = '/media/'

urls.py file

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', Trainings.views.home, name = 'homepage'),
    path('blog/', include('Blog.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

1 Ответ

1 голос
/ 29 октября 2019

Если ваш сервер находится в состоянии отладки False, по умолчанию Django не обслуживает статические файлы. На странице heroku есть страница справки об этой конкретной проблеме: Django и статические активы

Быстрый вариант: whitenoise

Вы можете установить пакет, чтобы очень быстро решить эту проблему. Это фактическое решение, предложенное Heroku.

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

Он занимает всего несколько строк на вашем settings.py

pip install whitenoise
MIDDLEWARE_CLASSES = (
    # Simplified static file serving.
    # https://warehouse.python.org/project/whitenoise/
    'whitenoise.middleware.WhiteNoiseMiddleware',
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

Более сложный вариант: django-хранилища

Если у вас есть дополнительные требования к производительности, я бы посоветовал взглянуть на django-хранилища для развертывания на сборке всехСобранные статические активы для экземпляра S3, который разработан специально для этой цели.

план хобби

Благодаря поиску и публикации в стеке: Django - Носитель в работе не работает , он также может быть получен из вашего текущего выбранного плана:

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

. Вам следует обновить свой план или рассмотреть возможность использования стороннего хранилища, такого как cloudinary, для хранения мультимедиа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...