Angular 具有自定义--base href和Nginx路由的角度SPA
我们有一个角度SPA应用程序,需要从中更改基本路径 www.site.com 到 www.site.com/app 我们在ng build命令中添加了--base href=/app 运行ng build--output path=dist--base href=/app/--prod 我们的nginx配置中有这样的功能: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/
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;
}