在我的 Angular 项目中,我在 src/assets/fonts/* 中存储了自定义字体
我在我的 styles.scss 文件中引用这些字体是这样的:
@font-face {
font-family: 'museo_sans_package';
src: url('assets/fonts/MuseoSans_100-webfont.eot');
...
当使用 Angular CLI 进行生产构建时,我的字体目录及其中的所有字体文件都被正确地复制到我的 ./dist 目录中:
./dist/assets/fonts/*
然而,我所有的字体文件也被复制到我的/dist 目录的根目录中,并导致我的字体有 2 个副本。一个在 ./dist/assets/fonts/* 中,如预期的那样,也在 ./dist/* 中,我不想要。
我需要在某处设置配置以避免这种情况吗?
更新:字体被复制到 ./dist/assets/fonts 目录,因为 .angular-cli.json 配置设置为将 Assets 复制到 dist 目录。
将我的字体复制到 .dist 的根中是由 sass 编译器或 Angular cli 构建过程或两者引起的,因为某些东西正在修改我的 @font-face 规则的 url 中设置的路径,改变它们指向根目录而不是相对路径 assets/fonts/*
我当前的 Angular 安装:
@angular/cli: 1.1.0
node: 8.0.0
os: darwin x64
@angular/animations: 4.1.3
@angular/common: 4.1.3
@angular/compiler: 4.1.3
@angular/core: 4.1.3
@angular/forms: 4.1.3
@angular/http: 4.1.3
@angular/platform-browser: 4.1.3
@angular/platform-browser-dynamic: 4.1.3
@angular/router: 4.1.3
@angular/cli: 1.1.0
@angular/compiler-cli: 4.1.3
@angular/language-service: 4.1.3
最佳答案
我遇到了同样的问题并通过在字体 url 的开头添加斜杠来修复它,如下所示:
src: url('/assets/fonts/MuseoSans_100-webfont.eot');
关于Angular CLI 生产构建将我所有字体的副本放在我的 dist 目录的根目录中。这可以避免吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44405403/