Применяется ли SCRIPT_NAME в django к STATIC_URL?

Я обслуживаю django с помощью gunicorn и nginx. И я наблюдаю странное поведение, которое выглядит так, как будто django префиксирует MEDIA_URL с SCRIPT_NAME, но не префиксирует STATIC_URL. Правильно ли я это делаю?

Конфигурация моей статики:

STATIC_URL = "backend/static/" # this looks odd but works
STATIC_ROOT = "/var/www/static"
STATICFILES_DIRS = [BASE_DIR / "static"]
MEDIA_URL = "media/"  # this looks fine
MEDIA_ROOT = "/var/www/media"

конфигурация гуникорна:

[Service]
User=www-data
Group=www-data
Environment="DJANGO_SETTINGS_MODULE=backend.settings.production"
WorkingDirectory=/var/www/backend
ExecStart=/var/www/backend/venv/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          backend.wsgi:application

конфигурацияnginx:

location ^~ /backend {
    proxy_set_header SCRIPT_NAME /backend;
    include proxy_params;
    proxy_pass http://unix:/run/gunicorn.sock;
    location ^~ /backend/static {
        alias /var/www/static/;
    }
    location ^~ /backend/media {
        alias /var/www/media/;
    }
}
Вернуться на верх