@gzaos

Как исправить ошибку 404 при обновлении страницы?

У меня есть приложение на angular и nestjs, и я использую nginx в качестве веб-сервера. Когда я запускаю приложение my-site.com:8080, все работает нормально и без проблем перенаправляется на my-site.com:8080/login, но стоит мне обновить страницу сразу выдает ошибку 404.

{"statusCode":404,"message":"Cannot GET /login","error":"Not Found"}


nginx:

server {
  listen 8080 ssl;

  ssl_certificate         /etc/letsencrypt/live/my-site.com/fullchain.pem;
  ssl_certificate_key     /etc/letsencrypt/live/my-site.com/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/my-site.com/chain.pem;

  error_page 497 301 =307 https://my-site.com:8080$request_uri;

  server_name my-site.com;

  root /home/username/apps/project/client/dist;

  index index.html;

  location @app {
     proxy_pass https://127.0.0.1:9900;
  }

  location / {
    try_files $uri $uri/ @app;
    error_page 405 @app;
  }

}
  • Вопрос задан
  • 578 просмотров
Пригласить эксперта
Ответы на вопрос 1
gedev
@gedev
сисадмин-энтузиаст
Попробуйте так:
location / {
    try_files $uri $uri/ /;
    index index.html;
}

Для роутинга в SPA надо чтобы запросы на несуществующие урлы переводились на index.html. Не знаю что у вас на 9900 слушает, в общем адаптируйте под свой конфиг.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы