Контекст:
Я использую Django в качестве бэкэнда и Vue / Vuetify в качестве отдельного интерфейса. Я использую Apache для обслуживания внешнего интерфейса, а Django предназначен исключительно для вызовов API в настройке клиент / сервер.
Я настроил WSGIScriptAlias для обслуживания из [base_url] / api вместо корня сайта. Я развернул проект, и он обслуживает запросы / отклики django из / api, как и ожидалось.
В моей среде разработки я использую 2 одновременных сервера разработки. Я использую сервер веб-пакета (порт 10000) для внешнего интерфейса и сервер запуска django на отдельном порту (10001) для обслуживания моих запросов при разработке.
в веб-пакете я настроил следующее:
devServer:{
hot: true,
port: 10000
historyApiFallback: true,
host: 'localhost',
//django api
proxy:{
'/api': {
target: 'http://localhost:10001',
pathRewrite: {'^/api' : ''},
secure: false
}
}
}
Идея в том, что всякий раз, когда я запрашиваю что-то у http://localhost:10000/api, оно автоматически перенаправляется на localhost: 10001, который имитирует работу производственного экземпляра, так как производство отключает /api часть запроса.
Проблема:
Когда я запускаю сервер dev webpack и django, я могу успешно запросить localhost: 10000 / api и получить ответ django, но я заметил, что когда я пытаюсь получить доступ к http://localhost:10000/api/admin,, который должен вызвать страницу администрирования django, Django перенаправляет на http://localhost:10000/admin.
Я ищу выход за пределы WSGIScriptAlias (так как яя не могу использовать это в своем экземпляре dev, если я не настроил локальный apache / virtualhost, с которым у меня возникли проблемы с обновлением при изменении django).
Есть лиКак я мог бы сделать одно из следующих действий?
A) в рабочей среде не иметь WSGIScriptAlias / Django в рабочей среде отбросить часть запроса / api (что сделает шаблоны URL согласованными во всех средах)
B) возможно, установите базовый URL в настройках Django или сервере запуска для включения / api, чтобы он не пытался перенаправить без / api
C), возможно, что-то в веб-пакете, которое мне не хватает дляНастройка devserver?
Полное раскрытие: Есть еще один вопрос, который задает что-то подобное ( Как установить базовый URL в Django ), но отличаетсяпохоже, что они говорят о производстве, я говорю об экземпляре разработчика. Их решением было также использовать WSGIScriptAlias, который я не могу использовать.