Обслуживание статики в режиме FORCE_SCRIPT_NAME

Я борюсь с обслуживанием статических файлов при использовании apache2 proxy. Я хочу держать мой сервер django на пути foo, как показано ниже.

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass /foo/ http://0.0.0.0:8000/
    ProxyPassReverse /foo/ http://0.0.0.0:8000/
</VirtualHost>

При таких настройках мое приложение не получает статические файлы, например, сайт администратора. Мое приложение не выдает никаких ошибок, но в браузере я получаю:

Не удалось загрузить ресурс: сервер ответил статусом 404 (Not Found)

Я пытался проксировать статические

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass /foo/ http://0.0.0.0:8000/
    ProxyPassReverse /foo/ http://0.0.0.0:8000/
    ProxyPass /static/ http://0.0.0.0:8000/static/
    ProxyPassReverse /static/ http://0.0.0.0:8000/static/
</VirtualHost>

Теперь все, что я получаю:

[16/Dec/2021 10:54:14] "GET /api/ HTTP/1.1" 200 5763
[16/Dec/2021 10:54:14] "GET /static/rest_framework/css/bootstrap.min.css HTTP/1.1" 404 1949
[16/Dec/2021 10:54:14] "GET /static/rest_framework/css/bootstrap-tweaks.css HTTP/1.1" 404 1958
[16/Dec/2021 10:54:14] "GET /static/rest_framework/js/jquery-3.5.1.min.js HTTP/1.1" 404 1952

Я запустил python manage.py collectstatic и мой settings.py выглядит следующим образом:

DEBUG = True
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
FORCE_SCRIPT_NAME = '/foo'

Если я оставляю свой прокси на /, все работает нормально. Есть ли какое-нибудь решение или другой подход, чтобы держать мое приложение django на пути и все еще получать статику?

Вернуться на верх