我正在使用CreateReact应用程序,不想弹出
不清楚通过@font-face导入并在本地加载的字体应该放在哪里
也就是说,我正在装货
@字体{
字体系列:“Myriad Pro Regular”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Regular')、url('myriadro-Regular.woff')格式('woff');
}
有什么建议吗
--编辑
包括丹在回答中提到的要点
➜ 客户端git:(功能/琐事-game-ui-2)✗ ls-l公共/静态/字体
总数1168
[email protected] maximveksler员工62676 2014年3月17日Myriadro-BOLD.woff
[email protected] maximveksler员工61500 2014年3月17日Myriadro-BOLDCOND.woff
[email protected] maximveksler staff 66024 2014年3月17日Myriadro-BOLDCONDIT.woff
[email protected] maximveksler员工66108 2014年3月17日Myriadro-BOLDIT.woff
-rwxr-xr-[email protected] maximveksler staff 60044 2014年3月17日Myriadro-COND.woff
[email protected] maximveksler staff 64656 2014年3月17日MYRIADPRO-CONDIT.woff
[email protected] maximveksler staff 61848 2014年3月17日Myriadro-REGULAR.woff
[email protected] maximveksler staff 62448 2014年3月17日Myriadro-SEMIBOLD.woff
[email protected] maximveksler staff 66232 2014年3月17日Myriadro-SEMIBOLDIT.woff
➜ 客户端git:(功能/琐事-game-ui-2)✗ cat src/containers/GameModule.css
.游戏模块{
填充:15px;
}
@字体{
字体系列:“Myriad Pro Regular”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Regular')、url('%PUBLIC_url%/static/fonts/myriadro-Regular.woff')格式('woff');
}
@字体{
字体系列:“Myriad Pro Condensed”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Condensed')、url('%PUBLIC_url%/static/fonts/myriadro-COND.woff')格式('woff');
}
@字体{
字体系列:“Myriad Pro半黑体斜体”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Semibold Italic')、url('%PUBLIC_url%/static/fonts/myriadro-SEMIBOLDIT.woff')格式('woff');
}
@字体{
字体系列:“Myriad Pro Semibold”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Semibold')、url('%PUBLIC_url%/static/fonts/myriadro-Semibold.woff')格式('woff');
}
@字体{
字体系列:“Myriad Pro浓缩斜体”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Condensed Italic')、url('%PUBLIC_url%/static/fonts/MYRIADPRO-CONDIT.woff')格式('woff');
}
@字体{
字体系列:“Myriad Pro Bold Italic”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Bold Italic')、url('%PUBLIC_url%/static/fonts/myriadro-BOLDIT.woff')格式('woff');
}
@字体{
字体系列:“Myriad Pro粗体浓缩斜体”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Bold Condensed Italic')、url('%PUBLIC_url%/static/fonts/myriadro-BOLDCONDIT.woff')格式('woff');
}
@字体{
字体系列:“Myriad Pro Bold Condensed”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Bold Condensed')、url('%PUBLIC_url%/static/fonts/myriadro-BOLDCOND.woff')格式('woff');
}
@字体{
字体系列:“Myriad Pro Bold”;
字体风格:普通;
字体大小:正常;
src:local('Myriad Pro Bold')、url('%PUBLIC_url%/static/fonts/myriadro-Bold.woff')格式('woff');
}
有两种选择:
使用进口
这是建议的选择。它确保您的字体通过构建管道,在编译过程中获得哈希值,以便浏览器缓存正常工作,并且如果文件丢失,您将获得编译错误
如“添加图像、字体和文件”中所述,您需要从JS导入CSS文件。例如,默认情况下,src/index.js导入src/index.css:
import./index.css';
这样的CSS文件通过构建管道,可以引用字体和图像。例如,如果将字体放入src/fonts/MyFont.woff,则index.css可能包括以下内容:
@字体{
字体系列:“MyFont”;
src:local('MyFont')、url(./font/MyFont.woff)格式('woff');
/*其他格式包括:“woff2”、“truetype”、“opentype”,
“嵌入式opentype”和“svg”*/
}
注意我们是如何使用以/开头的相对路径的。这是一种特殊的符号,有助于构建管道(由Webpack提供支持)发现此文件
通常这应该足够了
使用public文件夹
如果出于某种原因,您更喜欢而不是使用构建管道,而是使用“经典方式”,那么您可以使用public文件夹并将字体放在那里
这种方法的缺点是,在编译用于生产的文件时,这些文件不会得到哈希值,因此每次更改它们时都必须更新它们的名称,否则浏览器将缓存旧版本
如果要这样做,请将字体放在public文件夹的某个位置,例如,放在public/fonts/MyFont.woff中。如果您采用这种方法,那么您也应该将CSS文件放入public文件夹中,而不从JS导入它们,因为混合使用这些方法会非常混乱。因此,如果您仍然想这样做,您应该有一个类似于public/index.css的文件。您必须手动添加<;链接>从public/index.html到此样式表:
<;链接rel=";样式表“;href=";%公共“URL%/index.css”&燃气轮机;
在它里面,你可以使用常规的CSS符号:
@字体{
字体系列:“MyFont”;
src:local('MyFont')、url(font/MyFont.woff)格式('woff');
}
注意我是如何使用font/MyFont.woff作为路径的。这是因为index.css位于public文件夹中,因此它将从公共路径(通常是服务器根目录,但如果部署到GitHub页面并将主页字段设置为http://myuser.github.io/myproject,它将从/myproject)提供。但是字体也在公共文件夹中,因此它们将从字体相对地(或者http://mywebsite.com/fonts或http://myuser.github.io/myproject/fonts)。因此,我们使用相对路径
注意,由于在本例中我们避免使用构建管道,因此它不会验证文件是否确实存在。这就是为什么我不推荐这种方法。另一个问题是我们的index.css文件没有缩小,也没有得到散列。因此,对于最终用户来说,速度会变慢,而且浏览器可能会缓存文件的旧版本
使用哪种方式
使用第一种方法(“使用导入”)。我只描述了第二个,因为这是你试图做的(从你的评论判断),但它有很多问题,只有当你在解决一些问题时,它才应该是最后的手段