Files
octopus/myproject/myproject/urls_public.py
Andrey Smakotin 483f150e7a feat(static): improve static files handling and permissions in Docker
- Add script to set correct permissions on static files after collectstatic
- Introduce collectstatic command in entrypoint with permission fixing
- Add WhiteNoise middleware for efficient static file serving without DB access
- Configure WhiteNoise static files storage backend in settings
- Set STATIC_ROOT path properly for Docker container environment
- Add fallback static files serving in Django urls for production without nginx
- Enhance inventory_detail.html scripts to log errors if JS files or components fail to load
- Add whitenoise package to requirements for static file serving support
2025-12-22 20:45:52 +03:00

45 lines
1.6 KiB
Python

# -*- coding: utf-8 -*-
"""
URL configuration for the PUBLIC schema (inventory.by domain).
This is the main domain where:
- Super admin can access admin panel
- Tenant registration is available
"""
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.urls import re_path
from django.views.static import serve
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('tenants.urls')), # Роуты для регистрации тенантов (/, /register/, /register/success/)
path('accounts/', include('accounts.urls')), # Роуты для установки пароля владельцами тенантов
]
# Serve media files in development
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# Django Debug Toolbar (только в DEBUG режиме)
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
]
else:
# Force serve media files in production (for NAS setup)
urlpatterns += [
re_path(r'^media/(?P<path>.*)$', serve, {
'document_root': settings.MEDIA_ROOT,
}),
]
# Fallback для статических файлов в production (если nginx не настроен или не может прочитать файлы)
urlpatterns += [
re_path(r'^static/(?P<path>.*)$', serve, {
'document_root': settings.STATIC_ROOT,
}),
]