如何将 angular-material 与 CSP 一起使用?

How can I use angular-material with CSP?

我们的内容安全策略不允许 unsafe-inline 样式。

当我尝试在我们的应用程序中使用 angular-material 时,它无法正常工作(缺少样式)并且我在 DevTools 中记录了很多错误。据我所知,这是由于动态生成的 CSS 被注入页面。

我已经包括了 ngCsp,但它对这个问题没有明显影响。

根据 AngularJS Material 处的文档,解决方案必须是:

angular
.module("app", ['ngMaterial'])
.config(['$mdThemingProvider', function (themeProv) {
    themeProv.setNonce('randomString')
}])

The nonce to be added as an attribute to the theme style tags. Setting a value allows the use of CSP policy without using the unsafe-inline directive.