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

Webpack 5 如何保留CSS中@import引入的外部字体URL不被处理

问题原因

默认情况下css-loader会解析CSS文件内所有的@import和url()引用,尝试将其作为本地项目资源打包处理,因此你写的远程字体CSS引入会被css-loader捕获,无法原样保留。

解决方案

修改webpack配置中css-loader的参数,添加过滤规则跳过对远程http/https开头资源的解析即可,修改后的配置如下:

{
  test: /\.(css|scss)$/,
  use: [
    "style-loader",
    // 将原来的css-loader字符串写法替换为带参数的对象配置
    {
      loader: "css-loader",
      options: {
        // 仅处理相对路径的@import,跳过远程http/https开头的引入
        import: (importPath) => !importPath.startsWith('http'),
        // 若需要保留CSS中其他远程url()资源引用(比如背景图、字体直连等)可添加此行,不需要可删除
        url: (urlPath) => !urlPath.startsWith('http')
      }
    },
    "sass-loader"
  ],
},
// 原有字体资源处理规则保持不变即可
{
  test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
  exclude: [/images/],
  type: "asset/resource",
  generator: {
    filename: "fonts/[name][ext]",
  },
},

配置修改后重新启动webpack服务或重新打包,CSS中的远程@import就会原样保留,由浏览器直接加载对应的远程资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:18:00