fix: media-файлы django вне контейнера
This commit is contained in:
@@ -19,7 +19,9 @@ npm-debug.log
|
||||
|
||||
# Django
|
||||
db.sqlite3
|
||||
# Исключаем медиа, так как они должны быть внешними (volume)
|
||||
media/
|
||||
public/media/
|
||||
staticfiles/
|
||||
public/static/static_collected/
|
||||
|
||||
@@ -29,3 +31,7 @@ public/static/static_collected/
|
||||
|
||||
# Env
|
||||
.env
|
||||
|
||||
# ETPGRF Custom
|
||||
public/static/codemirror/editor.js
|
||||
frontend-assembly/dist/
|
||||
|
||||
@@ -74,7 +74,7 @@ http {
|
||||
}
|
||||
|
||||
location /media/ {
|
||||
alias /app/public/media/;
|
||||
alias /app/media/;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ services:
|
||||
- ./data:/app/data
|
||||
# Монтируем статику в именованный том, чтобы Nginx мог её читать
|
||||
- static_volume:/app/public/static_collected
|
||||
# Монтируем медиа (загружаемые файлы) в локальную папку на хосте
|
||||
- ./media:/app/public/media
|
||||
# Монтируем медиа в /app/media (унификация путей)
|
||||
- ./media:/app/media
|
||||
|
||||
env_file:
|
||||
- .env
|
||||
@@ -29,8 +29,8 @@ services:
|
||||
volumes:
|
||||
- ./config/nginx/etpgrf--internal-nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
- static_volume:/app/public/static_collected
|
||||
# Nginx тоже должен видеть медиа, чтобы раздавать их
|
||||
- ./media:/app/public/media
|
||||
# Nginx тоже должен видеть медиа
|
||||
- ./media:/app/media
|
||||
ports:
|
||||
- "8000:80" # Слушаем 8000 снаружи, проксируем на 80 внутри
|
||||
depends_on:
|
||||
|
||||
@@ -70,11 +70,11 @@ WSGI_APPLICATION = 'etpgrf_site.wsgi.application'
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/6.0/ref/settings/#databases
|
||||
# print(f"DEBUG: Database path is: {DB_PATH}") # <-- ОТЛАДКА
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
# База данных лежит в папке data в корне проекта
|
||||
'NAME': BASE_DIR.parent / 'data' / 'db-etpgrf.sqlite3',
|
||||
}
|
||||
}
|
||||
@@ -121,7 +121,8 @@ STATICFILES_DIRS = [BASE_DIR.parent / 'public' / 'static']
|
||||
# Убираем настройки WhiteNoise, так как в продакшене статику будет раздавать Nginx
|
||||
# STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
|
||||
|
||||
MEDIA_ROOT = BASE_DIR.parent / 'public' / 'media'
|
||||
# Медиа файлы (загружаемые пользователем)
|
||||
MEDIA_ROOT = BASE_DIR.parent / 'media'
|
||||
MEDIA_URL = '/media/'
|
||||
|
||||
# Default primary key field type
|
||||
|
||||
@@ -16,4 +16,10 @@ urlpatterns = [
|
||||
]
|
||||
|
||||
if settings.DEBUG:
|
||||
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||
# urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||
# runserver автоматически раздает статику из STATICFILES_DIRS,
|
||||
# поэтому добавлять static(settings.STATIC_URL...) НЕ НУЖНО.
|
||||
# Это только ломает путь, направляя его в STATIC_ROOT.
|
||||
|
||||
# А вот медиа runserver не раздает, поэтому это нужно:
|
||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
||||
Reference in New Issue
Block a user