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