【问题标题】:React on Kubernetes Ingress对 Kubernetes 入口做出反应
【发布时间】:2020-05-26 10:08:16
【问题描述】:

我在 Azure Kubernetes 中部署了一个应用程序。我试图通过 Ingress Nginx 控制器访问应用程序。 Ingress 指向 xxx.xxx.com,应用程序部署在路径“/react”中。因此,当我访问该应用程序时,我可以看到标题,但在控制台中看到以下内容 GET https://dns/static/css/main.c0f79ebd.css net::ERR_ABORTED 404。当我通过 https://dns/react/static/css/main.c0f79ebd.css 访问 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(/|$)(.*)

【问题讨论】:

标签: reactjs kubernetes azure-aks


【解决方案1】:

如果您使用 Create React App,您可能需要更新“主页”设置以反映文件将从子目录而不是站点根目录提供。

"homepage": "https://dns/react" 放入你的 package.json 并重建 react/docker 并且重新部署可能会成功。

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 2018-11-23
    • 2021-02-18
    • 2017-11-08
    • 2020-03-07
    • 2022-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多