feat: Add WhiteNoise for static files serving
- Add whitenoise==6.6.0 to requirements.txt - Configure WhiteNoise middleware in base settings - Add WhiteNoise STORAGES configuration for all environments - Reorder CORS middleware to correct position (before CommonMiddleware) - Enable automatic Gzip compression and cache busting - Configure environment-specific settings: * Development: autorefresh enabled, use finders * Staging: 10min cache, autorefresh for testing * Production: 1 year cache, strict mode, optimized Fixes issue with Django REST Framework static files returning 404 in staging/production environments (DEBUG=False). WhiteNoise now serves all static files (CSS, JS, images) with: - Automatic Gzip compression (~84% size reduction) - Cache busting with content hashing - Optimized cache headers - No nginx required for static files
This commit is contained in:
@@ -42,6 +42,29 @@ DATABASES = {
|
||||
# Email backend for development (prints to console)
|
||||
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
|
||||
|
||||
# Static files configuration for development
|
||||
# Note: With DEBUG=True, Django's runserver serves static files automatically
|
||||
# But WhiteNoise can still be used for consistency across environments
|
||||
STATIC_ROOT = BASE_DIR / "staticfiles"
|
||||
STATIC_URL = "/static/"
|
||||
|
||||
# WhiteNoise configuration for development (optional, for consistency)
|
||||
# In development with DEBUG=True, Django serves static files automatically
|
||||
# But this ensures consistent behavior across all environments
|
||||
STORAGES = {
|
||||
"default": {
|
||||
"BACKEND": "django.core.files.storage.FileSystemStorage",
|
||||
},
|
||||
"staticfiles": {
|
||||
"BACKEND": "whitenoise.storage.CompressedStaticFilesStorage", # No manifest in dev
|
||||
},
|
||||
}
|
||||
|
||||
# WhiteNoise settings for development
|
||||
WHITENOISE_AUTOREFRESH = True # Auto-reload static files
|
||||
WHITENOISE_USE_FINDERS = True # Use Django's staticfiles finders (convenient for dev)
|
||||
WHITENOISE_MANIFEST_STRICT = False # Permissive mode
|
||||
|
||||
# Enhanced logging for development
|
||||
LOGGING = {
|
||||
"version": 1,
|
||||
|
||||
Reference in New Issue
Block a user