fix: Исправлена раздача статических файлов в DEV режиме

- Исправлены пути STATICFILES_DIRS и MEDIA_ROOT (они должны быть относительно корня проекта, а не settings.py)
- Добавлена раздача STATIC_URL в urls.py для DEBUG режима
- Проверено что все статические файлы (CSS, JS) отдаются с кодом 200
Использование:
- Media:  Не используется (нет FileField/ImageField в моделях)
- Static:  Используется (CSS, JS, images в public/static)
Статика теперь корректно работает в dev окружении.
This commit is contained in:
2026-03-31 00:31:32 +03:00
parent 1a2865bae7
commit 31cd78079a
2 changed files with 10 additions and 6 deletions

View File

@@ -182,20 +182,22 @@ STATIC_URL = 'static/'
MEDIA_URL = 'media/' MEDIA_URL = 'media/'
# Пути для файлов (из переменных окружения) # Пути для файлов (из переменных окружения)
MEDIA_ROOT = get_env('MEDIA_ROOT', str(BASE_DIR / 'public' / 'media')) # BASE_DIR это директория rosmorport_tsts/, поэтому идём на уровень выше
SITEMAP_ROOT = get_env('SITEMAP_ROOT', str(BASE_DIR / 'public')) PROJECT_ROOT = BASE_DIR.parent
TOUCH_RELOAD = get_env('TOUCH_RELOAD_PATH', str(BASE_DIR / 'logs' / 'touchreload.txt')) MEDIA_ROOT = get_env('MEDIA_ROOT', str(PROJECT_ROOT / 'public' / 'media'))
SITEMAP_ROOT = get_env('SITEMAP_ROOT', str(PROJECT_ROOT / 'public'))
TOUCH_RELOAD = get_env('TOUCH_RELOAD_PATH', str(PROJECT_ROOT / 'logs' / 'touchreload.txt'))
# Статические файлы - разные конфигурации для DEBUG и PRODUCTION # Статические файлы - разные конфигурации для DEBUG и PRODUCTION
if DEBUG: if DEBUG:
# В режиме разработки Django сам будет раздавать статические файлы # В режиме разработки Django сам будет раздавать статические файлы
# и не нужен STATIC_ROOT, но нужны STATICFILES_DIRS для поиска файлов # и не нужен STATIC_ROOT, но нужны STATICFILES_DIRS для поиска файлов
STATICFILES_DIRS = [ STATICFILES_DIRS = [
BASE_DIR / 'public' / 'static', PROJECT_ROOT / 'public' / 'static',
] ]
else: else:
# В продакшене нужен STATIC_ROOT для collectstatic # В продакшене нужен STATIC_ROOT для collectstatic
STATIC_ROOT = get_env('STATIC_ROOT', str(BASE_DIR / 'public' / 'static')) STATIC_ROOT = get_env('STATIC_ROOT', str(PROJECT_ROOT / 'public' / 'static'))
STATICFILES_DIRS = [] STATICFILES_DIRS = []
# Default primary key field type (Тип primary key в моделях) # Default primary key field type (Тип primary key в моделях)

View File

@@ -40,4 +40,6 @@ urlpatterns = [
# handler500 = 'web.views.handler500' # handler500 = 'web.views.handler500'
if DEBUG: if DEBUG:
urlpatterns += static(MEDIA_URL, document_root=MEDIA_ROOT) # В режиме разработки раздаём статические файлы и медиа через Django
urlpatterns += static(MEDIA_URL, document_root=MEDIA_ROOT)
urlpatterns += static(STATIC_URL, document_root=STATICFILES_DIRS[0] if STATICFILES_DIRS else str(MEDIA_ROOT.parent / 'static'))