高分子材料网址’;s don’;无法刷新或手动导航,引发NGINX错误

高分子材料网址’;s don’;无法刷新或手动导航,引发NGINX错误,nginx,deployment,polymer,kubernetes,polymer-starter-kit,Nginx,Deployment,Polymer,Kubernetes,Polymer Starter Kit,当我登陆我的应用程序时,主页就会工作。当我手动导航到一个漂亮的URL(如myapp.com/registration page)时,我得到: 404未找到nginx/1.11.5 当我使用应用程序中的链接/按钮浏览应用程序时,它工作正常,直到我在一个漂亮的URL上刷新页面。然后,我看到了同样的错误.  我目前正在使用和处理我的路由 当我使用polymer-serve处于开发模式时,所有浏览器都可以正常工作。我的猜测是,这是一个聚合物问题,而不是nginx问题。在Chrome中一切都很好,但在

当我登陆我的应用程序时,主页就会工作。当我手动导航到一个漂亮的URL(如
myapp.com/registration page
)时,我得到:

404未找到nginx/1.11.5

当我使用应用程序中的链接/按钮浏览应用程序时,它工作正常,直到我在一个漂亮的URL上刷新页面。然后,我看到了同样的错误.  我目前正在使用
处理我的路由

当我使用
polymer-serve
处于开发模式时,所有浏览器都可以正常工作。我的猜测是,这是一个聚合物问题,而不是nginx问题。在Chrome中一切都很好,但在Firefox或Safari中却不起作用。几个月前,我对旧版的Polymer也有类似的提神问题。我通过将
hashbang
设置为false(在
routing.html
文件中)解决了这个问题:

我将
添加到
index.html
文件中,但它不起作用

*注意:如果有帮助,我可以使用Google云服务器和Docker容器+kubernetes来部署我的nginx


以前是否有人遇到过这个问题,并且知道如何解决它?

因此,当您定义一个入口以在集群外部公开您的服务时,您可以指定诸如哪些服务链接到哪些主机名之类的内容

因此,您指定要映射到
ing.spec.backend.serviceName
ing.spec.backend.servicePort
ing.spec.rules.host

因此,如果您使用其他URL访问入口,则入口可能不知道将流量路由到何处(到哪个目标服务)

一个解决方法是,您可以在入口中添加一个以上的条目,将漂亮的url(在您的例子中是myapp.com)映射到同一个服务

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: old.com
    http:
      paths:
      - path: /registration-page
        backend:
          serviceName: my-app-svc
          servicePort: 80

  - host: myapp.com
    http:
      paths:
      - path: /registration-page
        backend:
          serviceName: my-app-svc
          servicePort: 80
注意:在上面的示例中,第二个条目的主机不同


Ingress docs:

为了解决这个问题,我在App Engine上启动了我的整个Polymer前端,同时将我的后端保留在Compute Engine上。

谢谢@surajd…我很快就会尝试它。我不确定old.com是什么?因为我只有一个主应用程序主机myapp.com,但这是否意味着我必须为我的应用程序中的每个不同的漂亮url创建一个主机和路径?我的应用程序中有大约15-20个不同的链接。我试过了,但不幸的是它不起作用。同样的问题还在发生。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: old.com
    http:
      paths:
      - path: /registration-page
        backend:
          serviceName: my-app-svc
          servicePort: 80

  - host: myapp.com
    http:
      paths:
      - path: /registration-page
        backend:
          serviceName: my-app-svc
          servicePort: 80