我使用 angular-cli 创建了一个 Angular 项目,但是当我使用
启动该项目时npm start
正在显示
Refused to load the font 'data:font/woff;base64,d09GRgABAAAAAGVUABEAAAAAxuQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABgAAAAC4AAAA0ArgC7UdQT1MAAAGwAAAQ6AAALgxKsqRTR1NVQgAAEpgAAAH3AAAELqI5y+RPUy8yAAAUkAAAAE8AAABgaGyBu2NtYXAAABTgAAABlAAAAkQkRATXY3Z0IAAAFnQAAABeAAAAugDsQf1mcGdtAAAW1AAABZcAAAvNb3/BHGdhc3AAABxsAAAACAAAAAgAAAAQZ2x5ZgAAHHQAAEApAAB3CtbiupxoZWFkAABcoAAAADYAAAA2BkubWWhoZWEAAFzYAAAAIAAAACQHFARfaG10eAAAXPgAAAI6AAAEEk4TN4Nsb2NhAABfNAAAAhIAAAISiLhpam1heHAAAGFIAAAAIAAAACACigzgbmFtZQAAYWgAAACUAAABHhQGLdJwb3N0AABh/AAAAq4AAASRk5y6n3ByZ...QxUajCCFt4p9HP4fzdSWs2XhWl5HvJazrIrFUyB0l5dpqcW10lV2wukjMLuAvyMHNiYpgPsrCVXZDKrkpll6UWkh7kABVAFVCDe7UFmxagDegA+hLHRPbqtMo7ZHCpKdT6tPGXybzo0+RXBLoPZt1tELcXxCmAAyZwYTJvdDFZKnDER44X2451rDqCyunIsRWvLSx6wnWqwPj/uX5/KuEy6DL0z6A/Fn79VihxMFJsrlAFy4DpZOcvNlMeNp+BRDLj0r+XFdRxdSNSNxiI/AL3ojKdAAB4AWPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGdictkUwWDAwsDJogTgOPN4c9iz6bMos4iysHFChUDZXJnMWTSZZJrAQt9M+YQYBBh4GTgY2kEZOoJiA0z4GBxiEiDEzuGxUYewIjNjg0BGxkTnFZaMaiLeLo4GBkcWhIzkkAqQkEggceHw5HFkM2VRZJFlYebR2MP5v3cDSu5GJwWUDW9xG1hQXAFAmKZU=' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'font-src' was not explicitly set, so 'default-src' is used as a fallback.
我读了一些 SO 答案,然后发现我需要设置 CSP 元标记,所以我添加了
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; font-src 'self' data: fonts.gstatic.com">
在我的 index.html 文件中。但这仍然在浏览器控制台上显示相同的错误日志。有什么帮助吗?
该项目所在的目录是托管在 https://www.visualstudio.com/.
上的 git 目录。当我将这个项目从这个 git 目录移动到其他地方并运行时,它就可以工作了。不知道是什么原因?
如果您在元标记中设置 CSP 之前收到错误,则说明已经存在一个现有的 CSP。检查文档中的其他元标记或检查 HTTP 响应标头。您可以使用 https://securityheaders.io/ 扫描您的应用程序并查看是否存在 CSP 集。
注意:如果您确实在元标记中设置了 CSP,则需要将标记放置到您想要使用它列入白名单的任何资产之前的页面中。
<meta>
标签应尽可能早地放置在页面中。
服务器也可能发送一些 CSP 标头。要遵守 CSP 规则,您可以将字体文件添加到本地文件夹并直接加载它们,而不是外部源。由于 Angular 生成样式元素的方式可能会出现其他问题,这可能会违反其他 CSP 规则。
解决这两个问题的详细说明可以在这里找到: https://ben-5.azurewebsites.net/2024/9/18/csp-with-angular/
https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com 数据:;">
^ 应该可以解决问题