【发布时间】:2020-09-10 13:53:31
【问题描述】:
所以我正在使用 NuxtJS 构建一个网站,并使用 Tailwind CSS 作为我的样式。我正在使用@nuxtjs/tailwindcss 模块。
问题是我的字体似乎没有加载到浏览器上。正如您在 devtools 屏幕截图中看到的那样,正确的 font-family 仍然由 CSS 应用,但浏览器仍然使用 Times New Roman 呈现我的文本。
我的字体文件是 .ttf 文件,存储在我项目根目录的 /assets/fonts/ 文件夹中。
我的tailwind.css 文件看起来像这样
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
@font-face {
font-family: 'Montserrat';
font-weight: 400;
src: url('../fonts/Montserrat-Regular.ttf') format('ttf');
}
@font-face {
font-family: 'Montserrat';
font-weight: 700;
src: url('../fonts/Montserrat-Bold.ttf') format('ttf');
}
@font-face {
font-family: 'Montserrat';
font-weight: 900;
src: url('../fonts/Montserrat-Black.ttf') format('ttf');
}
而我的tailwind.config.js 看起来像这样
module.exports = {
theme: {
fontFamily: {
sans: ['Montserrat'],
serif: ['Montserrat'],
mono: ['Montserrat'],
display: ['Montserrat'],
body: ['Montserrat']
},
// Some more irrelevant theme customization
},
variants: {},
plugins: []
}
我想完全覆盖 Tailwind 的基本字体,所以我没有使用 extend,我计划在弄清楚如何正确执行此操作后清理它并为某些文本使用其他字体。
我的直觉告诉我 Tailwind 不是问题所在,因为 Devtools 实际上将 Montserrat 显示为计算字体,并且 webpack 构建不会引发任何错误。
我已经尝试了this related question 中的两个答案,接受的一个实际上是我的实现,但到目前为止没有好的结果。
如果有人可以帮助我,我将非常感激!
编辑:我创建了一个 Github 存储库来重现该问题,它可以在 here 找到,并且所有重现步骤都在 README.MD 中
【问题讨论】:
-
生产目录中有字体吗?是浏览器加载的吗?
-
正如我在帖子中解释的那样(也许不够清楚,我的错),我的字体文件位于我的项目目录根目录下的
/assets/fonts。我不知道如何检查浏览器是否实际加载了字体,我只知道我的屏幕截图显示正确的字体显示在“计算”面板中,但浏览器仍然使用 Times New Roman 呈现,这将导致我相信字体实际上没有加载。 -
1.我相信您在谈论源根目录,但我在询问构建后的文件(dist 目录)以检查 webpack 是否出于某种原因忽略了它们。 2.您可以在devtools的网络选项卡中检查文件是否加载到浏览器中。 3. 构建应用程序并检查 css 源是否仍然存在带有您的字体的 @font-face。 4. 最好能在任何沙箱中提供一些演示。
-
哦,我的错,我虽然你在谈论字体来源。不过,我的构建输出中没有 CSS,只有两个文件夹(客户端和服务器,使用 Nuxt 似乎很正常),客户端一个包含一个包含我构建的字体的字体文件夹。我对服务器端渲染的东西有点陌生,尤其是在开发模式下,但我有点惊讶地看到我的网络选项卡显示没有下载 CSS 样式表或字体文件。我会尝试做一些演示,但我不知道有任何沙箱可以重新创建 SSR 环境。我很快就会提供一个 github 链接。感谢您的帮助!
-
codesandbox.io 我认为最快的方法是找到任何现有的 nuxt 演示,然后像你一样更改字体。但是 git source 也可以。
标签: css vue.js fonts tailwind-css nuxtjs