重装node与angular后执行ng serve报错:无法解析字体文件
解决方案
核心报错原因是css文件内字体引用路径格式错误、node版本不匹配导致的依赖解析异常,可按以下步骤依次排查解决:
- 修正路径双斜杠:打开报错指向的
D:\node-v15.11.0-win-x64\ssc1\src\assets\styles\icons\material-design-iconic-font\css\materialdesignicons.min.css文件,将所有..//fonts/格式的路径中的双斜杠替换为单斜杠../fonts/,webpack路径解析规则不识别冗余的双斜杠,修正后重新执行ng serve测试。 - 统一node版本:你此前正常运行的node版本为14.15.0,当前报错路径显示你使用的是node v15.11.0,跨大版本的node会导致sass-loader、postcss-loader等编译依赖兼容性异常。建议将node版本回退到14.15.0,回退后删除项目根目录的
node_modules文件夹、package-lock.json文件,重新执行npm install安装依赖,再启动服务测试。 - 配置angular资源路径:如果上述操作未解决,打开项目根目录的
angular.json文件,找到projects -> [你的项目名] -> architect -> build -> options -> assets配置项,确保配置包含src/assets目录,示例配置如下:
"assets": [ "src/favicon.ico", "src/assets" ]
如果是通过npm安装的material design icon依赖,也可以直接修改style.scss中的引用路径为npm包路径,避免手动维护静态资源的路径问题:
@import "~@mdi/font/css/materialdesignicons.css";
内容的提问来源于stack exchange,提问作者jaya
相关产品推荐
相关产品推荐

