因此,我正在为我的网站添加本地字体。在主题的 CSS 文件中,我添加了:
@font-face {
font-display: swap; /* 查看 https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display 以获取其他选项。 */
font-family: 'Montserrat';
font-style: italic;
font-weight: 400;
font-display: swap;
src: url('../fonts/montserrat-v26-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
在我的 HTML 文件中,我添加了:
<link rel="preload" href="/fonts/montserrat-v26-latin-italic.woff2 " as="font" type="font/woff2" crossorigin="">
然后我保存、刷新了我的网站,查看了页面源代码,并点击了 /fonts/montserrat-v26-latin-italic.woff2 URL,这带我到了:
https://forums.mysite.com/fonts/montserrat-v26-latin-italic.woff2
我遇到了一个“404 Not Found”Nginx 页面。我想,“哦,对了,我的 Discourse 目录在我的 VPS 上没有 fonts 文件夹。” 尽管如此,我还是觉得它没有从我的主题的 fonts 文件夹中提取它很奇怪。所以,我在 /var/discourse/shared/standalone/ 添加了一个“fonts”文件夹。将我的字体文件放在那里,再次刷新浏览器页面,仍然是 404 错误。我能像这样简单地向 Discourse 添加文件夹吗,还是需要重新启动我的服务器才能生效,或者其他什么?
bryce
(Bryce Huhtala)
2
我不确定是否要添加目录,但关于在主题中使用字体文件,有一个内置方法可以尝试。如果您手动编辑主题文件,可以将字体添加到主题的 /assets 目录中,然后在 about.json 中添加一个条目,如下所示:
{
// other properties
"assets": {
"my-font-identifier": "assets/my-font-file.woff2"
}
}
然后在 @font-face 中,您可以使用 src: url($my-font-indentifier); 来引用它。
如果您只是在使用设置界面中的主题编辑器,我相信您可以将其添加到上传部分,在 SCSS var name 字段中输入您想要使用的标识符,然后在 SCSS 中以相同的方式引用它。
5 个赞
那么,我为每种字体做的资源代码会是这样吗?
"assets": {
"montserrat-reg": "assets/montserrat-v26-latin-regular.woff2",
"montserrat-ita": "assets/montserrat-v26-latin-italic.woff2"
},
编辑:这样可以了。直接指向字体的 /assets/ URL 仍然显示 404,但字体在页面上可以正常工作,所以 
Don
4
在管理员站点设置中,您可以将字体更改为 Montserrat。
基本字体
标题字体
如果您想添加一个不在核心字体中但存在于 Google Fonts 中的字体,则可以使用此主题组件:
5 个赞
是的,Montserrat 是用于另一个页面的。不过还是谢谢你!
Google 字体的问题在于它会加载 200 多个字符,而大多数字符人们从未使用过,这会拖慢页面速度。
1 个赞
Jagster
(Jakke Lehtonen)
6
不,它不会——当你使用最多 3-4 种字体集(并且只使用所需的字重)时,它就不会。
2 个赞
关于这个有一个疑问:所以,当你查看你的(任何人的)Discourse站点的论坛页面源代码,然后搜索“font”时,会显示很多字体。即使你在设置向导中只选择了一两种字体,它们都会被加载吗?如果是这样,我希望只加载我选择的那一种。
system
(system)
关闭
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.