angular - Kubernetes Ingress 部署 Angular 资产(图片)不显示
问题描述
我使用 Docker 来打包 Angular 项目(容器使用 Nginx)。在 Docker 上运行时,图像显示正常,但是当使用 Ingress 部署到 Kubernetes 时,assets
文件夹中的所有图像都不会出现。
在 Docker 上运行的内容类型。没关系:
但是在 Kubernetes 上运行时。内容类型始终为 text/html:
配置入口 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
解决方案
在您的 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;
}
}
推荐阅读
- python - 如何在python中从一个.py文件运行多个.py文件
- json - 如何在邮递员或 mongodb 指南针中将大文本解析为 json 对象
- linux - 当挂载的 ftp 文件夹变得无法访问时,文件系统挂起
- java - 如何使用数字(如一个一个数字)创建 Java 三角形
- excel - 使用 Excel VBA 进行动态网页抓取
- gremlin - 如何使用其 Java 驱动程序从 JanusGraph 获取顶点或边的数据?
- javascript - 在同步函数中等待 img.onload
- reactjs - 如何在 React Jest 中使用 spyFn 测试组件
- c - C中的“点初始化语法”
- php - 在 PHP 中匹配具有句点、括号和数字的字符串