Angular 11字体内联失败

Posted

技术标签:

【中文标题】Angular 11字体内联失败【英文标题】:Angular 11 Inlining of fonts failed 【发布时间】:2021-05-31 13:48:59 【问题描述】:

试图在代理后面的系统中构建 angular11 应用程序。运行“ng build --prod”时出现此错误:

字体内联失败。检索时发生错误 https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap 通过互联网。 getaddrinfo ENOTFOUND fonts.googleapis.com

有些帖子说要禁用它,指向这个角度文档URL 以获取更多信息,但我无法让它工作。如果我将 angular.json “优化”参数编辑到下面,我会得到 Schema validation failed...Data path .optimization should be boolean 错误:

"optimization":  
  "scripts": true,
  "styles": 
    "minify": true,
    "inlineCritical": true
  ,
  "fonts": false

如果我按照这个post(搜索“AUTOMATIC FONT INLINING”)并在package.json中添加以下内容,它似乎没有任何效果:

"optimization":  
  "scripts": true,
  "styles": false,
  "fonts": false

【问题讨论】:

有什么解决办法吗?我也面临同样的问题。 你是怎么解决的?我也面临类似的问题。 面临同样的问题。 【参考方案1】:

按照你提到的URL Angular 的指导,我只更改了 angular.json 文件,方式略有不同,它对我有用。这是我在生产属性下的 angular.json 文件中所做的更改。

"production": 
    ...
    "optimization": 
        "scripts": true,
         "styles": true,
         "fonts": false
     ,
     ...
,

【讨论】:

【参考方案2】:

根据 https://github.com/angular/angular-cli/pull/19848

设置环境HTTPS_PROXY 变量就可以了。它在公司代理后面对我有用(不要忘记http://):

SET HTTPS_PROXY=http://<server-name>:<server-port>
ng build

环境:Windows 10, nodejs v14.17.4, angular 12.2.0

【讨论】:

你是为npm,还是vs code,还是ng设置它们 我使用 Windows 10 控制面板全局设置环境变量 HTTPS_PROXY。【参考方案3】:

我遇到了同样的问题,但建议不起作用(代理除外)。所以我从谷歌服务器下载了 css 文件并通过 angular.json 绑定到源

"styles": [
    "src/styles.scss",
    "src/assets/fonts/roboto.scss",
    "src/assets/fonts/material-icons.scss"
]

【讨论】:

【参考方案4】:

我遇到了同样的问题。尝试更改优化,但没有帮助。

最后我在终端中调用了 'npm audit fix --force',这解决了我的问题。

--force 参数在这里相当暴力,但如果你对该命令有信心,就不会发生任何不好的事情。

【讨论】:

【参考方案5】:

这只是一个样式表,请随意将其从“index.html”(或任何链接到它的页面)中删除:

<link
  href="https://fonts.googleapis.com/icon?family=Material+Icons"
  rel="stylesheet"
/>

或者您可以访问 href 链接以获取其内容并将其作为新的 css 或复制到现有的 css 中。

【讨论】:

【参考方案6】:

就我而言,这是我的 *** 服务有问题。

【讨论】:

以上是关于Angular 11字体内联失败的主要内容,如果未能解决你的问题,请参考以下文章

分配失败 - 当 ng serve 时,Angular 11 中的 JavaScript 堆内存不足

Angular2代码给出内联模板错误

在路由中定义 Angular 组件内联?

带有内容安全策略的 Angular 12 CSS 优化内联事件处理程序

Angular.js 内联编辑

Angular JIT 编译失败:'@angular/compiler' 未加载