下面是nginx的配置:
server {
listen 80;
server_name localhost;
location /app {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri /index.html;
}
}
当运行容器并转到http://localhost:8000/app
时,它工作得很好,但是如果我导航到一些子路由,例如:http://localhost:8000/app/products
(这是一个有效的路由在anuglar路由器),然后重新启动我得到nginx 404错误.
我想我的nginx配置有问题。任何帮助将不胜感激。
3条答案
按热度按时间t98cgbkg1#
尝试将
try_files
行更改为try_files $uri $uri/ /index.html?$args;
该指令按照指定的顺序检查文件是否存在,并使用找到的第一个文件进行请求处理。
如果没有找到任何文件,则进行到最后一个参数中指定的uri的内部重定向。这应该是你的SPA应用程序路线。
f0brbegy2#
这一个终于为我工作了:
try_files $uri $uri/ /app/index.html?$args;
rkttyhzu3#
我遇到了一个类似的问题,我在我的Nginx配置中添加了try_files $uri $uri//app/index. html,但它没有按预期工作。我也试过try_files $uri $uri/ /app/index.html?$args;,但它仍然没有解决问题。在进一步调查之后,我发现我正在修改/etc/nginx/nginx.conf文件,而Nginx实际上是从**/etc/nginx/conf.d/default.conf**阅读配置。对于任何面临同样问题的人,我提供了下面的工作配置:
我在Docker容器中使用Nginx作为Angular应用程序的Web服务器。