在 vite vue3 项目中加载本地字体

Posted

技术标签:

【中文标题】在 vite vue3 项目中加载本地字体【英文标题】:Load local fonts in vite vue3 project 【发布时间】:2022-01-02 06:57:19 【问题描述】:

在 main.scss 中,我从 assets/styles/fonts 文件夹加载本地字体:

@font-face 
  font-family: 'Opensans-Bold';
  font-style: normal;
  src: local('Opensans-Bold'), url(./fonts/OpenSans-Bold.ttf) format('truetype');

@font-face 
  font-family: 'Opensans-Light';
  font-style: normal;
  src: local('Opensans-Light'), url(./fonts/OpenSans-Light.ttf) format('truetype');

然后在 vite.config 中加载 main.scss:

css: 
  preprocessorOptions: 
    scss: 
      additionalData: `@import "@/assets/styles/main.scss";`
    
  
,

但是 main.scss 中的所有 css 都被应用除了字体,我得到错误:

downloadable font: download failed (font-family: "Opensans-Bold" style:normal weight:400 stretch:100 src index:1): status=2152398850 source: http://localhost:3000/fonts/OpenSans-Bold.ttf

我是在正确的轨道上还是我需要一些其他方法(与 Vue-CLI 类似的工作)?

【问题讨论】:

我也有同样的问题。路径似乎与它无关。在这两种情况下 - @/assets../assets - 当我刷新页面时,字体不会随机加载。但在生产中,一切似乎都很好。我认为这个问题与 Vite 开发服务器有关。 【参考方案1】:

这是正确的方法,解决方案是相对路径:

src: local('Opensans-Bold'), url(@/assets/styles/fonts/OpenSans-Bold.ttf) format('truetype');

【讨论】:

以上是关于在 vite vue3 项目中加载本地字体的主要内容,如果未能解决你的问题,请参考以下文章

在QML中加载不同字体

在QML中加载不同字体

在QML中加载不同字体

字体未在 XCode 中加载

如何使用 @rails/webpacker 加载本地字体?

Android设置本地字体文件ttf