我目前面临使用 Nginx Ingress Controller 在 Kubernetes 集群上为 SonarQube 部署提供资产的问题。通过浏览器访问 SonarQube UI 时,资产(CSS、JS 文件)无法正确加载,我在浏览器控制台中收到以下错误:
Refused to apply style from 'https://internal.domain.com/js/outDLYDOPRS.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
以下是我的设置的简要概述:
# MY INGRESS FILE
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sonarqube-ingress
namespace: sonarqube
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
ingressClassName: nginx
rules:
- host: internal.domain.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: sonarqube-sonarqube
port:
number: 9000
尽管进行了这些配置,资产仍未按预期加载。我已经验证了服务的状态,检查了 Ingress Controller 日志,并查看了 Ingress 资源状态,但无法识别问题。
其他详情
任何人都可以提供有关如何排查和解决此资产加载问题的指导或建议吗?任何帮助或指示将不胜感激!
预先感谢您的协助!
看起来 CSS 和 JS 文件访问返回了 404 html 页面。您可以通过在浏览器中直接访问 css 路径来确认这一点。
我的建议是在需要之前不要使用重写注释选项,因为这可能会将 js 和 CSS 的路径重写回根“/”
试试这个
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sonarqube-ingress
namespace: sonarqube
spec:
ingressClassName: nginx
rules:
- host: internal.domain.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: sonarqube-sonarqube
port:
number: 9000
如果这对您有帮助,请告诉我。