繁体   English   中英

docker 和 nginx 中的 Angular 路由

[英]Angular routing in docker and nginx

我有以下Dockerfile

FROM node:14.15.5 as build-stage
WORKDIR /webapp

COPY package*.json /webapp/
RUN npm ci

COPY ./ /webapp/
RUN npm run build:prod


# copy SPA and serve by nginx
FROM nginx:1.15
COPY --from=build-stage /webapp/dist/kubernetes-webapp/ /usr/share/nginx/html
EXPOSE 80

我在 angular 应用程序中启用了路由,并且在localhost:4200/myroute上访问它时它正在工作。

但是当我在 docker 容器中运行应用程序并访问localhost:4200/myroute它返回404 Not Found nginx/1.15.12

nginx 配置是来自nginx/1.15.12 image的默认配置

我如何能够解决问题并允许 angular 在 docker 容器中路由 nginx。

据我所知,上面的 docker 文件将在 ngnix 中构建和复制文件以运行您的应用程序(您构建 angular 并通过 ZEE434023CF89D7DFB274F63D64F0F9 服务器公开构建文件夹/静态文件)

  1. 您正在 ngnix 和端口 80 上运行应用程序。
  • 尝试打开 url localhost:80或简单地 localhost 因为默认端口是 80

*当您运行 angular 进行开发时,您使用命令 ng serve 并在端口 4200 上打开,并且幕后的服务命令为您提供运行/开发项目的服务器。

但是在您的这种情况下,您已经进行了构建,并且您选择了在端口 80 上运行的服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM