You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用@Font-face加载EOT字体文件时遇到的问题

排查Sass加载字体不生效的问题

我来帮你梳理几个常见的问题点,毕竟字体加载没生效这种情况,大多是细节没踩对:

  • 字体格式与format值不匹配
    你代码里写的format("embedded-opentype")是针对.eot格式字体的,而你的字体文件是.otf,对应的format应该是"opentype"。这是很容易犯的小错误,修改后应该是:

    @font-face { 
      font-family: "myFont"; 
      font-style: normal; 
      font-weight: 300; 
      src: url("/wwwroot/assets/fonts/sampleFont.otf") format("opentype"); 
    }
    
  • 确认Webpack的字体资源处理配置
    虽然Webpack构建没报错,但如果没有正确配置字体资源的加载规则,字体文件可能没有被正确复制到输出目录。如果是Webpack 5+,可以用asset modules来处理:

    module.exports = {
      module: {
        rules: [
          {
            test: /\.(woff|woff2|eot|ttf|otf)$/i,
            type: 'asset/resource',
            generator: {
              filename: 'assets/fonts/[name][ext]' // 确保输出路径和你引用的路径一致
            }
          }
        ]
      }
    }
    

    这样Webpack会把字体文件打包到指定的输出目录,保证你的引用路径能找到文件。

  • 验证浏览器实际请求的路径
    打开Chrome开发者工具(F12)切换到「Network」标签,刷新页面后搜索你的字体文件名,看是否能成功加载(状态码为200)。如果显示404,说明路径还是有问题:

    • 检查绝对路径/wwwroot/assets/fonts/...是否和项目部署后的根目录匹配,比如如果你的项目部署在服务器的子目录,绝对路径可能需要调整;
    • 也可以尝试改成相对路径,比如如果你的Sass文件在src/styles目录,路径可以写成../assets/fonts/sampleFont.otf(根据实际目录结构调整)。
  • 检查字体文件本身
    有时候字体文件损坏或者不支持你指定的300字重,可以换一个确认可用的字体文件测试,或者用工具转换一下格式(比如生成woff/woff2格式,这两种是现代浏览器更推荐的格式,兼容性更好)。

  • 清除浏览器缓存
    浏览器可能缓存了旧的字体资源,导致新字体不生效。可以尝试强制刷新页面(Ctrl+Shift+R),或者在开发者工具的「Network」标签勾选「Disable cache」后再测试。

内容的提问来源于stack exchange,提问作者pancake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 15:47:33