Информация о приложении
Мое приложение использует asp. net основной веб-API для серверной стороны и React js для клиентской.
Перед публикацией приложения код реакции js создается прямо в папке www root моего веб-API Core asp. net. Это позволяет размещать клиент и API на одном и том же URL.
Мой клиент использует SPA и использует маршрутизацию реакции. При запуске в "localhost: 44362 /" мое основное приложение asp. net перенаправляет пользователя в индексный файл. html в моей папке www-root.
Когда это происходит, клиент начинает использовать пакет activ-router.
Проблема
Допустим, наше текущее местоположение - "localhost: 44362 / dashboard" Когда мы обновляем sh страницу, которую мы находим 't go непосредственно через маршрутизацию реакции, но сначала - ядро asp. net. Это приведет к появлению страницы 404, поскольку сервер не может найти фактическую маршрутизацию.
На самом деле должно произойти следующее: при refre sh страница должна go пройти через индекс. html и после выполнения запроса / dashboard.
То, что я пробовал
Я попытался изменить файл web.config при замене поведения кода ошибки HTTP 404 состояния поведения, чтобы изменить ВыполнениеURL в /index.html, как показано ниже:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404" responseMode="ExecuteURL" path="/index.html" />
</httpErrors>
</system.webServer>
</configuration>
Примечание. При замене существующей части Response = "Replace" на что-то другое, это решение ломается.
Это работает для обновления, но нарушает обычные сообщения об ошибках
При обращении к этому решению обычный HTTP-ответ будет заменен.
пример:
- Пользователь вводит неправильный пароль и отправляет запрос на вход в систему
- Сервер отправляет ответ об ошибке HTTP 400 с телом «неверный пароль»
- Тело ответа об ошибке заменяется на th e web.config
- Теперь сервер отправляет только «неверный запрос» вместо «неверного пароля»
Мой вопрос
Есть Есть ли способ заставить маршрутизацию работать, сохраняя при этом правильные сообщения об ошибках?