Angular 具有自定义--base href和Nginx路由的角度SPA

Angular 具有自定义--base href和Nginx路由的角度SPA,angular,nginx,Angular,Nginx,我们有一个角度SPA应用程序,需要从中更改基本路径 www.site.com 到 www.site.com/app 我们在ng build命令中添加了--base href=/app 运行ng build--output path=dist--base href=/app/--prod 我们的nginx配置中有这样的功能: location / { try_files $uri $uri/ /index.html; } 我们把它改成了 location /app/ { root /usr/

我们有一个角度SPA应用程序,需要从中更改基本路径

www.site.com 到 www.site.com/app

我们在ng build命令中添加了--base href=/app

运行ng build--output path=dist--base href=/app/--prod

我们的nginx配置中有这样的功能:

location / {
 try_files $uri $uri/ /index.html;
}
我们把它改成了

location /app/ {
 root /usr/share/nginx/html/app;
 try_files $uri $uri/ /app/index.html;
}
访问localhost/consumerhub站点会抛出500错误。这是我在日志中看到的:

2019/10/15 19:53:51[错误]7#7:*1在内部重定向到“/app/index.html”时重写或内部重定向循环,客户端:172.17.0.1,服务器:,请求:“GET/app/HTTP/1.1”,主机:“localhost:9182” 172.17.0.1--[15/Oct/2019:19:53:51+0000]“GET/app/HTTP/1.1”500572“-”Mozilla/5.0(Macintosh;英特尔Mac OS X 10_14_3)AppleWebKit/537.36(KHTML,如Gecko)Chrome/77.0.3865.90 Safari/537.36“-”

应该是什么?提前谢谢

使用
ng build--prod--base href/app/--deploy url/app/
(更改应用程序运行的端口号(80))


实际上,您可以在angular.json配置中为任何环境或所有环境添加这些参数(--baseHref和--deployURL)。

从错误中可以看出,这似乎是一个内部重定向。这是正常的,因为你的
try\u文件
语句说:试试这个,这个,或者
/app/index.html
,它会再次启动一个新位置。我不确定您为什么需要在您的位置中使用
根目录。你能不带这个试试吗?
  location /app/ {
      rewrite ^/app/(.*) /$1 break;
      proxy_pass         http://localhost:80/app/;
      proxy_set_header   Host $http_host;
      proxy_set_header   X-Real-IP $remote_addr;
  }