Обслуживание статики в режиме 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 на пути и все еще получать статику?