Angular CLI 生产构建将我所有字体的副本放在我的 dist 目录的根目录中。这可以避免吗?

标签 angular fonts command-line-interface

在我的 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/

相关文章:

angular - Angular 2 中 app.module.ts 中的 Providers 数组

android - Android 中的 Helvetica 替代方案

php - Laravel 4.x,CLI已停止工作

php - asterisk agi (php) 文件调试

Angular2 - npm install 没有找到命名空间 webdriver

angular - 路由中的canActivate和canDeactivate是什么?

angular - 在 'http://localhost:8080 from origin ' http ://localhost:4200' has been blocked by CORS policy 访问 XMLHttpRequest

html - 使用带有自定义字体的 Font Awesome 动画

android - Android中的自定义字体

PHP 扩展在 apache 模块中加载,但不在 CLI 中加载