Kubernetes Ingress部署Angular资产(图片)未显示

时间:2019-04-19 00:53:21

标签: angular kubernetes

我使用Docker打包Angular项目(容器使用Nginx)。在Docker上运行时,图像显示正常,但是在使用Ingress部署到Kubernetes时,assets文件夹中的所有图像均不会出现。

在Docker上运行的Content-Type。可以:

Link Image

但是在Kubernetes上运行时。内容类型始终为text / html:

Link Image

配置入口Kubernetes。服务名称ssite

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: abc-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "swing-static-ip"
    ingress.kubernetes.io/force-ssl-redirect: "true"
    ingress.gcp.kubernetes.io/pre-shared-cert: "abc,xyz"
spec:
  rules:
  - host: abc.com
    http:
      paths:
      - backend:
          serviceName: sservice
          servicePort: 8000
  - host: xyz.com
    http:
      paths:
      - path : /
        backend:
          serviceName: ssite
          servicePort: 80
      - path : /*
        backend:
          serviceName: ssite
          servicePort: 80

2 个答案:

答案 0 :(得分:0)

尝试添加注释:

您是否正在使用nginx入口?

nginx.ingress.kubernetes.io/rewrite-target: /

答案 1 :(得分:0)

在您的nginx配置集中default_type指令

  

定义响应的默认MIME类型。文件名映射   可以使用types指令设置MIME类型的扩展名。

server {
   ...
   default_type text/html;

   location /assets/imgs {
      default_type image/png;
   }

   location /assets/imgs {
      default_type image/jpeg;
   }
}