当我尝试在Next.js中使用Material UI 5添加自托管字体时,出现了问题。我遇到了这个错误:
您可能需要一个适当的加载器来处理此文件类型,目前没有配置任何加载器来处理此文件。请参见 https://webpack.js.org/concepts#loaders(源代码已省略对于此二进制文件)
即使我在next.config.js
中添加了file-loader
,如下:
module.exports = {
module: {
rules: [
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: ['file-loader'],
},
],
},
};
这是我的定制主题:
PS:我的本地字体名称是BarcadeBrawl.ttf。
import { createTheme } from "@mui/material";
import { purple, blue } from '@mui/material/colors';
import BarcadeBrawl from '../assets/fonts/BarcadeBrawl.ttf'
export const theme = createTheme({
palette: {
primary: {
main: purple[500],
},
secondary: {
main: blue[500],
},
},
typography: {
fontFamily: 'BarcadeBrawl',
fontSize: 12,
},
components: {
MuiCssBaseline: {
styleOverrides: `
@font-face {
font-family: 'BarcadeBrawl';
font-style: normal;
font-display: swap;
font-weight: 400;
src: local('BarcadeBrawl'), local('BarcadeBrawl'), url(${BarcadeBrawl}) format('ttf');
unicodeRange: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF;
}
`,
},
},
});
src: url('/fonts/BarcadeBrawl.woff2') format('woff2');
- Arthur Burgan