在SCSS文件中,为了使用外部字体,我们经常需要使用@font-face规则。如果你使用Angular来生成你的应用程序,你可能会遇到一个问题:当你在CSS中使用@font-face和外部字体时,Angular会自动重写字体文件的URL。这个问题特别影响那些使用字体资源CDN的开发者。
为了解决这个问题,我们可以将URL重写的功能从Angular里去掉。首先,您需要在angular.json中将"extractCss: true"设置为false,如下所示:
"architect": {
"build": {
"options": {
...
"extractCss": false,
...
}
}
}
然后,在你的SCSS文件里,你可以使用~前缀来使用字体CDN的URL:
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url('~https://fonts.cdn.com/open-sans/v19/sOmDkxJuLq6MtZ4zNtX8MmBp.ttf') format('truetype');
}
这种方式告诉Angular不必对这个URL进行重写。
注意:如果你使用的是相对路径而不是CDN URL,请将~前缀替换成./。
这样,你就可以成功地在Angular项目中使用外部字体了。