我有一个前端应用程序,是一个静态网站。在这个网站中,有多个静态内容的引用(如图像或js文件),如果我运行本地服务器,我可以毫无问题地浏览它。
我想将我的站点部署为一个Kubernetes服务,因为我有自己的集群,所以我创建了部署和服务,它们都运行得很好,然后我创建了一个入口,这样我就可以通过我的nginx控制器公开我的站点,最后设置前缀路径 /myApp。到目前为止,我可以通过/myApp/index.html访问站点,但这个索引文件中引用的每个静态文件都会引发404错误。
这实际上是预期的行为,因为我的站点可以在这个前缀路径下到达,如果使用相同的路径引用我的内容,则可以访问它们。即使我重新部署站点,在路径的其余部分之前更新每个附加前缀的引用,站点也可以正常工作(或者,如果我也将入口指向根路径)。
这里的问题是,理想情况下,我希望站点在任何前缀路径下运行,而不需要手动使用新路径更新每个html文件。
那么,根据可能的最佳实践,我是否有办法做到这一点呢?我能否以某种方式部署我的应用程序并在我的入口中分配任意的前缀路径,同时让我的内部引用指向正确的路径?
发布于 2021-09-16 04:33:26
您可以创建Nginx入口以附加前缀。
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上面的入口将重写路径,如
curl https://example.com/auth/api/
path: /api/
curl https://example.com/auth/api/any/whatever
path: /api/blah/whatever您也可以使用/auth/api代替/myApp,根据需要更改它。
https://stackoverflow.com/questions/69202001
复制相似问题