![](/img/trans.png)
[英]Serving a static react application behind a Kubernetes Ingress
[英]React on Kubernetes Ingress
我在 Azure Kubernetes 中部署了一個應用程序。 我試圖通過 Ingress Nginx 控制器訪問應用程序。 Ingress 指向 xxx.xxx.com,應用程序部署在路徑“/react”中。 因此,當我訪問該應用程序時,我能夠看到標題,但我看到以下控制台 GET https://dns/static/css/main.c0f79ebd.css net::ERR_ABORTED 404。我能夠訪問 CSS 文件當我通過https://dns/react/static/css/main.c0f79ebd.css訪問它時。 那么如何將 /react 添加到生成的文件路徑中?
以下是dockerfile內容
# build environment
FROM node:12.2.0-alpine as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /app/package.json
RUN npm install --silent
RUN npm install react-scripts@3.0.1 -g --silent
COPY . /app
RUN npm run build
# production environment
FROM nginx:1.16.0-alpine
COPY --from=build /app/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
入口部署
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
namespace: sample-ns
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
tls:
- hosts:
- dns
secretName: tls
rules:
- http:
paths:
- backend:
serviceName: my-react-app
servicePort: 80
path: /react(/|$)(.*)
如果您使用 Create React App,您可能需要更新“主頁”設置以反映文件將從子目錄而不是站點根目錄提供。
將"homepage": "https://dns/react"
放在 package.json 中並重建 react/docker 並重新部署可能會成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.