Angular 无法在mat图标中加载自定义SVG
我试图在MatIconRegistry中加载一个自定义SVG,组件中包含以下代码Angular 无法在mat图标中加载自定义SVG,angular,typescript,angular-material,Angular,Typescript,Angular Material,我试图在MatIconRegistry中加载一个自定义SVG,组件中包含以下代码 constructor(fb: FormBuilder, private matIconRegistry: MatIconRegistry, private domSanitizer: DomSanitizer) { this.matIconRegistry.addSvgIconInNamespace( 'capp', 'reassign', this
constructor(fb: FormBuilder,
private matIconRegistry: MatIconRegistry,
private domSanitizer: DomSanitizer) {
this.matIconRegistry.addSvgIconInNamespace(
'capp',
'reassign',
this.domSanitizer.bypassSecurityTrustResourceUrl('../../../../assets/images/reassign.svg')
);
this.form = fb.group({
query: ''
});
}
但当我在浏览器中与
我在控制台中得到以下错误
Error retrieving icon: Failed to construct 'URL': Invalid URL
我尝试了SVG的各种相对路径,该路径位于“资源”下的“图像”文件夹中,我尝试了./,/,并使其相对于路径..//
我能够让它工作的唯一方法是指定完整的URL,但这在部署时会有所不同,我知道SVG的路径应该是相对的
有人能给我建议吗
我能够让它工作的唯一方法是指定完整的URL,但部署时会有所不同
您已经解决了这个问题:它需要一个绝对URL而不是相对URL
为解决不同的部署问题,可以考虑使用Windows .Loo..Or原原地,这将为任何环境提供工作,只要应用程序的基本URL为/./P>
matIconRegistry.addSvgIconInNamespace(
'capp',
'reassign',
domSanitizer.bypassSecurityTrustResourceUrl(window.location.origin + '/assets/images/reassign.svg')
);