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

Angular14微前端(Webpack5 Module Federation+ngx-build-plus)字体资源路径404问题求助

Angular14微前端(Webpack5 Module Federation+ngx-build-plus)字体资源路径404问题求助

嗨,我之前在做Angular微前端的时候也碰到过一模一样的资源路径问题,给你几个亲测有效的解决方案,你可以挨个试试:

  • 修改Angular构建的baseHref配置
    你可以直接在构建命令里加上--base-href /my-webco/参数,或者在angular.json的build配置项里固定设置这个值:

    "build": {
      "builder": "ngx-build-plus:browser",
      "options": {
        "baseHref": "/my-webco/",
        // 其他已有的配置内容...
      }
    }
    

    这样Angular在打包时会自动给所有资源的引用路径加上/my-webco/前缀,字体文件就会从正确的https://my-host/my-webco/icon-font.woff路径加载了。

  • 自定义Webpack配置设置publicPath
    因为你用了ngx-build-plus,可以通过额外的Webpack配置来指定资源的基础路径:

    1. 先在项目根目录创建一个webpack.extra.js文件,内容如下:
      module.exports = {
        output: {
          publicPath: '/my-webco/'
        }
      };
      
    2. 然后修改angular.json里的build配置,引入这个额外的Webpack配置:
      "build": {
        "builder": "ngx-build-plus:browser",
        "options": {
          "extraWebpackConfig": "./webpack.extra.js",
          // 其他已有的配置内容...
        }
      }
      

    Webpack的publicPath会作为所有打包后资源的路径前缀,能直接解决字体这类静态资源的路径问题。

  • 检查CSS中字体的引用写法
    最后可以检查一下你的样式文件里字体的引用路径,确保用的是相对路径而不是绝对路径:

    @font-face {
      font-family: 'IconFont';
      src: url('./icon-font.woff2') format('woff2'),
           url('./icon-font.woff') format('woff');
    }
    

    避免使用以/开头的绝对路径,这样Webpack在打包时才能根据前面设置的baseHref或publicPath来生成正确的资源路径。

备注:内容来源于stack exchange,提问作者UserRomain1234

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 07:48:15