首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态网站通过前缀路径在Kubernetes下抛404

静态网站通过前缀路径在Kubernetes下抛404
EN

Stack Overflow用户
提问于 2021-09-16 03:29:37
回答 1查看 568关注 0票数 0

我有一个前端应用程序,是一个静态网站。在这个网站中,有多个静态内容的引用(如图像或js文件),如果我运行本地服务器,我可以毫无问题地浏览它。

我想将我的站点部署为一个Kubernetes服务,因为我有自己的集群,所以我创建了部署和服务,它们都运行得很好,然后我创建了一个入口,这样我就可以通过我的nginx控制器公开我的站点,最后设置前缀路径 /myApp。到目前为止,我可以通过/myApp/index.html访问站点,但这个索引文件中引用的每个静态文件都会引发404错误。

这实际上是预期的行为,因为我的站点可以在这个前缀路径下到达,如果使用相同的路径引用我的内容,则可以访问它们。即使我重新部署站点,在路径的其余部分之前更新每个附加前缀的引用,站点也可以正常工作(或者,如果我也将入口指向根路径)。

这里的问题是,理想情况下,我希望站点在任何前缀路径下运行,而不需要手动使用新路径更新每个html文件。

那么,根据可能的最佳实践,我是否有办法做到这一点呢?我能否以某种方式部署我的应用程序并在我的入口中分配任意的前缀路径,同时让我的内部引用指向正确的路径?

EN

回答 1

Stack Overflow用户

发布于 2021-09-16 04:33:26

您可以创建Nginx入口以附加前缀

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingres
  annotations:
    ingress.kubernetes.io/rewrite-target: /api
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - http:
      paths:
      - path: /auth/api
        backend:
          serviceName: service
          servicePort: 80

上面的入口将重写路径,如

代码语言:javascript
复制
curl https://example.com/auth/api/ 
path: /api/

curl https://example.com/auth/api/any/whatever
path: /api/blah/whatever

您也可以使用/auth/api代替/myApp,根据需要更改它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69202001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档