Медиа-файлы Django не найдены (404) при развертывании рендерингаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Медиа-файлы Django не найдены (404) при развертывании рендеринга

Сообщение Anonymous »

У меня возникли проблемы с обслуживанием медиафайлов в моем приложении Django, развернутом на Render. Медиа-файлы создаются и хранятся (я думаю) правильно на сервере, но доступ к ним через браузер приводит к ошибке 404. В моей локальной среде разработки все работает нормально.
Настройка проекта:

Код: Выделить всё

settings.py
:[/b]

Код: Выделить всё

import os
from pathlib import Path
import environ
import dj_database_url

# Initialize environment variables
env = environ.Env(
DEBUG=(bool, False)
)

# Read .env file
environ.Env.read_env(os.path.join(Path(__file__).resolve().parent.parent, '.env'))

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# Static and Media files
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = '/var/data/media'

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

# Static files finders
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]

# Ensure static files are served using Whitenoise
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'allauth.account.middleware.AccountMiddleware',
]

# Whitenoise storage
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

# Other settings...

# URL configuration
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Существование файла:
Я проверил, что медиафайлы создаются на сервере:

Код: Выделить всё

render@srv-cpoif12ju9rs738p174g-5f676c9f8c-bwxhd:~/project/src$ ls -l /var/data/media/subtitles/U-sEgjJRHcM_subtitles.json
-rwxr-xr-x 1 render render 14995 Jun 22 14:53 /var/data/media/subtitles/U-sEgjJRHcM_subtitles.json
Шаблоны URL-адресов:

Код: Выделить всё

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.auth.views import LoginView, LogoutView
from django.views.generic import TemplateView
from accounts import views as account_views
from subplayer import views as subplayer_views
from allauth.account.views import LoginView, LogoutView, SignupView
from allauth.account.views import PasswordResetView

urlpatterns = [
path('admin/', admin.site.urls),
...

if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Проблема:
Несмотря на то, что файл существует на сервере, доступ к нему по URL-адресу приводит к ошибке 404.
Например: https://xxx.onrender.com/media/subtitle ... itles.json
Что я Пробовал:
  • Проверил существование файла на сервере.
  • Проверил и перепроверил MEDIA_URL< Настройки /code> и MEDIA_ROOT.
  • Гарантированные URL-адреса настроены правильно.
  • Разрешения кажутся правильными с помощью chmod -R 755 /var/ данные/медиа.
Дополнительная информация:
  • Использование Render для развертывания.
  • Создан постоянный диск, смонтированный в /var/data.
Будем очень признательны за любую помощь в решении этой проблемы!

Подробнее здесь: https://stackoverflow.com/questions/786 ... der-deploy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»