Вы не сможете установить код состояния HTTP в одностраничном приложении - вся маршрутизация выполняется на той же странице в браузере, поэтому после загрузки страницы больше не будут получены коды состояния HTTP.
Однако, если вы попытаетесь загрузить несуществующий маршрут, напрямую набрав / скопировав URL-адрес в адресную строку браузера, вы можете использовать nginX (или любое другое серверное программное обеспечение, которое вы используете), чтобы сигнализировать Статус 404 HTTP:
server {
error_page 404 /404.html;
location / {
try_files $uri $uri/ =404;
}
}
Но это не практичный / мудрый подход - в основном, вы хотите, чтобы каждый несуществующий путь был разрешен до /index.html
, чтобы ваш SPA всегда загружался и однажды загружался - он определит, что этот маршрут не существует, и отобразит ваш компонент 404.
Итак, ваша nginX конфигурация должна выглядеть так:
server {
...
location / {
try_files $uri /index.html$is_args$args;
}
}
Переменная $is_args
добавит ?
если $args
не пусто, а $args
предоставит параметры запроса (если есть).