Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在angular 7中使用自定义字体文件时,如何减少初始加载时间?_Javascript_Node.js_Angular_Typescript_Ecmascript 6 - Fatal编程技术网

Javascript 在angular 7中使用自定义字体文件时,如何减少初始加载时间?

Javascript 在angular 7中使用自定义字体文件时,如何减少初始加载时间?,javascript,node.js,angular,typescript,ecmascript-6,Javascript,Node.js,Angular,Typescript,Ecmascript 6,我将本地字体文件保存在assets/fonts文件夹中。我总共使用了3种字体(lato、raleway、Glyph) 在“head”标记下的index.html中,我写了如下内容: <link rel="preload" href="./assets/fonts/Lato/Lato-Semibold.woff2" as="font" crossorigin> <link rel="preload" href="./assets/fonts/Lato/Lato-Blac

我将本地字体文件保存在assets/fonts文件夹中。我总共使用了3种字体(lato、raleway、Glyph)

在“head”标记下的index.html中,我写了如下内容:

<link rel="preload" href="./assets/fonts/Lato/Lato-Semibold.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Lato/Lato-Black.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Lato/Lato-Bold.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Lato/Lato-Heavy.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Lato/Lato-Medium.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Lato/Lato-Regular.woff2" as="font" crossorigin>

    <link rel="preload" href="./assets/fonts/Raleway/Raleway-Black.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Raleway/Raleway-Bold.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Raleway/Raleway-ExtraBold.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Raleway/Raleway-Medium.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Raleway/Raleway-MediumItalic.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Raleway/Raleway-Regular.woff2" as="font" crossorigin>
    <link rel="preload" href="./assets/fonts/Raleway/Raleway-SemiBold.woff2" as="font" crossorigin>

    <link rel="preload" href="./assets/fonts/glyphicons-halflings-regular.ttf" as="font" crossorigin>
@font-face {
  font-family: "Lato-Medium";
  src: url("/assets/fonts/Lato/Lato-Medium.woff2") format('woff2');
}

@font-face {
  font-family: "Lato-Regular";
  src: url("/assets/fonts/Lato/Lato-Regular.woff2") format('woff2');
}
我使用gzip压缩并实现了PWA。 报告显示,在使用“ng build--prod”构建和部署应用程序并在“chrome lighthouse”中检查性能后,预加载密钥请求需要花费大量时间。如何减少这一时间?有解决办法吗


因为您已经像这样在scss文件中包含了字体

src: url("/assets/fonts/Lato/Lato-Medium.woff2") format('woff2');
因此,您只需将所需字体添加到scss文件中,然后将其从index.html中删除即可

同时将字体添加到ngsw-config.json以缓存它

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/assets/favicon.ico",
          "/*.css",
          "/*.js",
        ],
        "urls": [
          "https://fonts.googleapis.com/css?family=Raleway" // add your font here
        ]
      }
    }, {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**",
          "/images/**",
          "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
        ]
      }
    }
  ]
}