Eu tenho um aplicativo Angular hospedado no nginx que se comunica com uma API de back-end. O back-end está funcionando, o aplicativo está funcionando quando eu vou, example.com/
mas se eu for, example.com/custom/path/123
ele não será roteado para index.html
, que é a página Angular. Em vez disso, recebo apenas uma página nginx 404.
Tudo o que eu realmente quero é que qualquer rota de entrada (exceto os caminhos /api
e /assets
) seja passada para esse índice.
Na minha configuração eu tenho isso:
server {
root /var/www/example.com/site-root;
server-name example.com;
location / {
try_files $uri $uri/ index.html;
# I also tried:
# try_files $uri$args $uri$args/ index.html;
}
location /assets {
try_files $uri =404;
}
location ~ ^/api/(.*)$ {
proxy_pass http://127.0.0.1:3322/$1;
# a bunch of working api reverse proxy that doesn't seem to be
}
}
A try_files
abordagem é o padrão que vi em muitos exemplos, parece estar funcionando para todos os outros. Estou usando errado ou esta é a abordagem errada neste cenário?