#angular #kubernetes
#angular #kubernetes
Вопрос:
Я использую Docker для упаковки проекта Angular (контейнер использует Nginx). При запуске в Docker изображения отображаются нормально, но при развертывании в Kubernetes с использованием Ingress все изображения в assets
папке не отображаются.
Тип содержимого, запущенный в Docker. Все в порядке:
Но при запуске в Kubernetes. Тип содержимого всегда — text / html:
Настройте Ingress 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
Комментарии:
1. Вы пытались удалить первый путь? Это кажется избыточным. Также, пожалуйста, попробуйте удалить и создать ingress с нуля, потому что GCP не любит вносить изменения в существующий объект ingress.
2. Сначала я пробовал без первого пути. Это то же самое, что и часть sservice.
3. Попробуйте использовать единственный путь «/*».
4. Я пытался. Ничего не изменилось.
Ответ №1:
В вашей конфигурации nginx установите директиву default_type
Определяет тип MIME ответа по умолчанию. Сопоставление расширений имен файлов с типами MIME можно задать с помощью директивы types .
server {
...
default_type text/html;
location /assets/imgs {
default_type image/png;
}
location /assets/imgs {
default_type image/jpeg;
}
}
Ответ №2:
Попробуйте добавить аннотацию :
используете ли вы nginx ingress?
nginx.ingress.kubernetes.io/rewrite-target: /
Комментарии:
1. Я попытался использовать цель перезаписи-перезаписи. Но изображения по-прежнему не отображаются.
2. я думаю, что это проблема, если заголовок передает n вход nginx.