@font-face 未在反应应用程序中加载(故事书)

Posted

技术标签:

【中文标题】@font-face 未在反应应用程序中加载(故事书)【英文标题】:@font-face not loading in react app (storybook) 【发布时间】:2019-12-27 22:33:56 【问题描述】:

我在从本地加载字体时遇到问题,我正在指向目录。有人可以帮我吗?

这是我的代码

@font-face 
  font-family: 'My font';
  src: url('./fonts/Myfonts-webfont.eot');
  src: url('./fonts/Myfonts-webfont.eot?#iefix') format('embedded-opentype'),
    url('./fonts/Myfonts-webfont.woff') format('woff'),
    url('./fonts/Myfonts-webfont.ttf') format('truetype'),
    url('./fonts/Myfonts-webfont.svg#my_fonts_otbook') format('svg');
  font-weight: normal;
  font-style: normal;


and using it as 
.btn 
  font-family: 'My font', sans-serif;
  max-width: 100%;
  width: 20%;
  height: 8%;

【问题讨论】:

你遇到了什么错误? 我在加载我的应用程序时没有收到任何错误,加载的是无衬线字体而不是我的字体。 当我构建我的应用程序时,我收到了来自 webpack 的性能警告 资产:font/myfonts-Book.ttf (315 KiB) font/myfonts-Semibold.ttf (257 KiB) 供应商~main.aa2cd040f0c1fba7504e.bundle.js (1.52 MiB) 入口点大小限制:The以下入口点的组合资产大小超过了建议的限制 (244 KiB)。这会影响网络性能。 【参考方案1】:

我建议看看这个

还取决于您将它们存储在哪里,即您必须指向目录的资产/字体。

font-face syntax

例子

@font-face 
  font-family: 'Graublau Web';
  src: url('GraublauWeb.eot');
  src: local('☺︎'),
    url("GraublauWeb.woff") format("woff"),
    url("GraublauWeb.otf") format("opentype"),
    url("GraublauWeb.svg#grablau") format("svg");

【讨论】:

我使用相同的语法忘记将其包装在 @font-face....... 中,同时在这里发帖【参考方案2】:

我尝试了不同的方法,终于找到了问题所在。它是导致问题的故事书 web-pack 配置。我没有将 module.rules 推送到 storybook 默认 webpack 配置,而是覆盖了规则并且它起作用了。

【讨论】:

【参考方案3】:

您是否使用 webpack 文件加载器来加载路径,您不必指定字体文件所在的位置。只要您将字体文件包含在 src/assets/fonts 中,file-loader 就会为您找到它。

【讨论】:

以上是关于@font-face 未在反应应用程序中加载(故事书)的主要内容,如果未能解决你的问题,请参考以下文章

three.js OBJLoader 未在反应中加载

@font-face 没有在 shadowDom 中加载

在 CSS 中加载 @font-face 时如何删除浏览器中的默认字体? “FOUT”

CSS 未在 WKWebView 中加载

字体未在 XCode 中加载

Json 未在 SwiftUI 中加载