首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在vite vue3项目中加载本地字体

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

Stack Overflow用户
提问于 2021-11-23 19:24:32
回答 2查看 10.6K关注 0票数 7

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

代码语言:javascript
运行
复制
@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

代码语言:javascript
运行
复制
css: {
  preprocessorOptions: {
    scss: {
      additionalData: `@import "@/assets/styles/main.scss";`
    }
  }
},

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

代码语言:javascript
运行
复制
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类似的工作)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-23 21:21:00

这是正确的方法,解决办法是相对路径,所以:

代码语言:javascript
运行
复制
src: local('Opensans-Bold'), url(@/assets/styles/fonts/OpenSans-Bold.ttf) format('truetype');

并在vite.config.js中设置别名:

代码语言:javascript
运行
复制
resolve: {
  alias: {
    '@': path.resolve(__dirname, 'src'),
  }
}
票数 15
EN

Stack Overflow用户

发布于 2022-06-13 00:00:36

我只需简单地将字体放在根目录上的公用文件夹中就可以完成这项工作。

像这样:

代码语言:javascript
运行
复制
public/.**.ttf
src/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70086712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档